2014-04-18 68 views
3

Java 8中的ConcurrentHashMap不使用鎖定,儘管JDK 6和JDK 7實現了。是否有Java 8實現向Java 6的回溯?ConcurrentHashMap JDK 8到JDK 6 backport

原因:沒有鎖=>沒有爭用=>更好的性能。

+1

鎖是你應用程序中的瓶頸嗎? –

+0

是的,如果主要使用2到3個桶。此外,還有多個編寫器(幾乎實時更新) –

+0

出於好奇,分別測量Java 8和更早版本的時間是多少? –

回答

1

有至少Java 7的backports,請參閱Infinispan的這一個,這是關於它的blog post。它也應該在Java 6中工作,可能值得下載infinispan jar並進行測試。

+1

關閉:「嗨, 不幸的是,這不適用於JDK6,因爲ConcurrentMapFactory會檢查是否存在com.sun.unsafe.Unsafe而不是sun.misc.Unsafe。我打開了一個JIRA問題:https://issues.jboss .org/browse/ISPN-2237 Robert「 –

+0

整個庫是一個單獨的jar嗎?或者,簡單一點,我可以得到meat = concurrency backport嗎? –

+0

我不知道這是否只是問題,但似乎值得一試,將源文件複製到項目中,並使用不同的軟件包名稱重新導入導入。它可能只是 –

0

的Netty有backport和Netty的語言水平的Java 6

+0

請看我的答案。 –

1

自2014年4月我們已經遷移我們的產品Java8,所以它不是一個迫在眉睫的問題了我們。對於那些仍然有這個問題的人,請看Doug Lea的jsr166eDocs,the jar compiled under Java6

作爲一個方面說明:現在甚至twitter已經把這些類的一部分放入jar編譯下Java6 :)。