2012-01-10 3 views
2

Netty에 내부 동시 HashMap 유틸리티가 있음을 발견했습니다. Netty가 Java Core에 내장 된 ConcurrentHashMap을 사용하지 않는 이유가 궁금합니다. Netty 구현이 어떤면에서 더 좋습니까? 아니면 새로운 기능이 있습니까? Concurrent HashMap이 필요한 프로젝트에서 작업 중이며 Netty 구현을 사용해야하는지 여부는 논쟁 중입니다.하지만 소스 코드에 차이가 있는지 확인할 수는 없습니다.왜 Netty에는 자체 ConcurrentHashMap이 있습니까?

+1

설명서를 읽거나 용감한 사람이라면 소스 코드를 살펴보십시오. – mre

+6

아마도 넷티가 어느 시점에서 Java 1.4를 지원했으나 제거되지 않았습니다. –

+0

어떤 유틸리티를 언급하고 있습니까? – skaffman

답변

5

ConcurrentHashMap은 패키지로 Java 5에서 릴리스 된 JSR-166까지 존재하지 않았습니다.

Netty는 우수하기 때문에 자신의 ConcurrentHashMap을 포함하지 않습니다. 실제로 JSR-166의 사본이기 때문에 Java 1.4에서 실행할 수 있습니다.

Java 5에 종속성을 가질 수 있다면 자신의 프로젝트에 대해서는 java.util.concurrent.ConcurrentHashMap을 사용해야합니다. 그렇지 못하면 그냥 제품에 포함시켜야합니다 (그리고 패키지 이름을 변경하여 Java 5 런타임에 포함 된 프로젝트와 충돌하지 않습니다.) Doug Lea 또는 Brian Goetz에게 thread-safe 코드를 작성하게 할 수 있으면 좋습니다.

+0

정말 고마워요! 이것은 완벽하게 이해할 수 있습니다. Netty의 ConcurrentHashMap에 대한 소스 코드를 살펴 봤는데 다른 것을 볼 수 없었지만 뭔가를 놓치지 않았는지 확인하려고했습니다. –

관련 문제