我注意到Netty有一些內部的Concurrent HashMap實用程序。我很好奇爲什麼Netty不使用內置於Java Core中的ConcurrentHashMap。 Netty實施是否以某種方式更好,還是具有一些新功能?我正在研究一個需要Concurrent HashMap的項目,我正在辯論是否應該使用netty實現,但是我看不到源代碼中的任何區別。爲什麼netty有自己的ConcurrentHashMap?
2
A
回答
5
ConcurrentHashMap
直到JSR-166纔出現,它在Java 5中作爲java.util.concurrent
包發佈。
Netty不包括他們自己的ConcurrentHashMap
,因爲它的優越性 - 實際上,它當然只是JSR-166的一個副本 - 所以它們可以在Java 1.4上運行。
你自己的項目,你應該只使用java.util.concurrent.ConcurrentHashMap
,如果你可以採取Java 5的依賴,如果你不能,那麼你應該包括在您的產品(和更改包名稱,以便它不不會與Java 5運行時包含的項目發生衝突。)任何時候,您都可以讓Doug Lea或Brian Goetz爲您編寫線程安全代碼。
+0
非常感謝!這非常合理。我查看了Netty的ConcurrentHashMap的源代碼,我看不出有什麼不同,但我想確保我沒有錯過任何東西。 – 2012-01-12 15:10:43
相關問題
- 1. ConcurrentHashMap有什麼缺點嗎?
- 2. ConcurrentHashMap是否自己創建副本?
- 3. 爲什麼Netty 4沒有Datagram ServerChannel
- 4. 場景:爲什麼要使用ConcurrentHashMap?
- 5. 爲什麼NSMutuableArray重置自己
- 6. 爲什麼PartialView不斷調用自己?
- 7. 爲什麼hibernate自己執行更新?
- 8. 爲什麼當陳述自己
- 9. 爲什麼$ _SERVER ['PATH_TRANSLATED']重複自己?
- 10. Android - 爲什麼ContentObserver調用自己?
- 11. 爲什麼pylint會評估自己?
- 12. 有什麼用來限制自己HTTP1.0?
- 13. 爲什麼Direct3D沒有自己的頂點結構?
- 14. Grails擁有自己一方的對象關係 - 爲什麼?
- 15. 爲什麼catch子句有他們自己的詞彙環境?
- 16. 爲什麼ormlite有它自己的註釋?
- 17. Netty:爲什麼在TimeServerHandler中使用ChannelInboundHandlerAdapter?
- 18. 爲什麼名單強制所有新項目重複自己?
- 19. 爲什麼找不到我自己的自定義模塊?
- 20. 爲什麼結構類型被定義爲自己的名字?
- 21. 類有什麼功能有自己的靜態成員?
- 22. 爲什麼不訪問自己的屬性在自己所擁有的塊中引發編譯器警告
- 23. ConcurrentHashMap ArrayList爲值
- 24. C#爲什麼我不能爲自己的類編寫自定義的IEnumerator
- 25. 爲什麼成員IsApproved將自己設置爲false?
- 26. 爲什麼col-sm-12不以自己爲中心?
- 27. 爲什麼UITextField在將自己設置爲委託時鎖定
- 28. 什麼是不動產?爲什麼我不能讓自己的私人空間?
- 29. 爲什麼我沒有收到發送到我自己的IP的UDP包?
- 30. 爲什麼NORTHWND數據庫的員工表有自己的參考?
閱讀文檔,或者如果你很勇敢,可以深入瞭解源代碼。 – mre 2012-01-10 16:38:35
netty可能在某些時候支持Java 1.4,但它並沒有被刪除。 – 2012-01-10 16:41:23
你指的是哪些工具? – skaffman 2012-01-10 17:01:33