为什么netty有自己的ConcurrentHashMap?

Chr*_*lla 2 java netty

我注意到Netty有一些内部的Concurrent HashMap实用程序.我很好奇为什么Netty不使用内置于Java Core中的ConcurrentHashMap.Netty实现在某种程度上是否更好,或者它是否具有一些新功能?我正在开发一个需要Concurrent HashMap的项目,我正在讨论是否应该使用netty实现,但我看不出源代码有什么不同.

Edw*_*son 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为你编写线程安全的代码,你可能应该这样做.