2010-11-21 74 views
8

Java中實現多核的最簡單方法是什麼?就此而言,我的意思是,要專門指出執行項目的某些部分的核心,那麼很老的「正常」java線程不是一種選擇。到目前爲止,我被推薦使用JConqurr(它是用於Java的多核編程的Eclipse工具包),JaMP(它擴展了OpenMP的Java)和MPJ express,其中我不太瞭解。你認爲以上哪一點最好?還是你有其他建議?以某種方式確定性能提升/增益將是可取的,但不是唯一的。在Java中實現多核 - 如何?

任何幫助將不勝感激。 謝謝, 二十九。

+5

這個術語(「實現多核」)在任何地方使用?我會將此問題更改爲「在Java中的特定內核上運行線程」 – ripper234 2010-11-21 09:45:49

+2

我認爲這個術語是「處理器親和性」,它適用於內核以及處理器。 – ide 2010-11-21 11:19:35

+0

爲什麼您需要能夠爲線程設置處理器關聯?爲什麼不讓JVM處理這些決定? – Darien 2010-12-03 00:53:48

回答

0

斯卡拉很受歡迎。它運行在JVM上,並具有綁定Java的鉤子。

+0

事情是,我必須使用Java。不允許使用其他語言。 – twentynine 2010-11-21 10:10:10

2

儘管在Java中編寫多線程代碼非常容易,但Java標準運行庫中一般不允許您告訴JVM或操作系統如何安排程序。因此,您需要專門爲您的JVM和/或您的操作系統編寫代碼,並且該代碼可能無法在Java中執行(除非您潛入JNI或JNA中)。外部程序可以在許多Unix版本(也可能是Windows)中將進程固定到CPU,但我認爲你不能爲單個線程執行此操作。

+0

是的,Java是「太跨平臺」,以支持... – khachik 2010-11-21 10:57:51

+0

@khachik,我不相信這是爲什麼。請參閱Java 6中已有的桌面集成功能。基本上,Java的設計人員有意在正在運行的程序中隱藏實現細節的_lot_。這允許JVM以發生時尚未設想的方式進行優化。 – 2010-11-21 12:51:53