2012-01-10 26 views
2

Nettyには、内部のConcurrent HashMapユーティリティがいくつかあります。なぜNettyがJava Coreに組み込まれているConcurrentHashMapを使用していないのか不思議です。 Nettyの実装は何らかの点で優れているのですか、それとも新しい機能がいくつかありますか?私はConcurrent HashMapが必要なプロジェクトに取り組んでいます。私はnetty実装を使うべきかどうか議論していますが、ソースコードに違いは見られません。なぜNettyには独自のConcurrentHashMapがありますか?

+1

ドキュメントを読んだり、勇気があれば、ソースコードに目を通してください。 – mre

+6

おそらくnettyがJava 1.4をサポートしていて、削除されていない可能性があります。 –

+0

どのユーティリティを参照していますか? – skaffman

答えて

5

ConcurrentHashMapは、java.util.concurrentパッケージとしてJava 5でリリースされたJSR-166まで存在しませんでした。

Nettyには、自分のConcurrentHashMapが含まれていません。これは優れているためです。実際、JSR-166のコピーはJava 1.4でも実行できるからです。

自分のプロジェクトでは、Java 5に依存することができる場合は、java.util.concurrent.ConcurrentHashMapを使用してください。そうでない場合は、それをあなたの製品に組み込むだけです(パッケージ名を変更してJava 5ランタイムに含まれるプロジェクトと競合しません)。Doug LeaやBrian Goetzにスレッドセーフなコードを書くことができるときは、おそらくそうでしょう。

+0

ありがとう!これは完璧な意味合いがあります。私はNettyのConcurrentHashMapのソースコードを見ましたが、何か違うものは見えませんでしたが、私は何かが欠落していないことを確認したかったのです。 –

関連する問題