[問題] Multithreading with java

看板java作者 (keeperkai)時間12年前 (2012/03/29 03:23), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
如題,小弟想請問怎麼確定OS真的能把在java中的thread分配至不同 core或者cpu. 小弟是用windows xp,但打開工作管理員只能看到一個 java process在跑。請問有沒有甚麼方法能確定哪一個thread在第幾 個core上面跑,或者有其他方法能驗證我的OS真的有將屬於同一個 java process的不同thread分配到不同core上去執行? 查了網路上的 資料看到不少都是在問怎麼控制Host OS讓他盡可能將多個core拿出來 給問的人的thread去跑,而決定這些的是Host OS,但是沒看到甚麼可 以驗證他真的在不同core上跑的方法,不知道能不能請大家指點一下? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.11

03/29 12:16, , 1F
軟體的thread和硬體的thread不一樣吧~ OS課程好像是這樣說的..
03/29 12:16, 1F

03/29 13:23, , 2F
我看了一些資料 好像說java thread是使用n to n model..
03/29 13:23, 2F
意思是你開了足夠多個java thread 系統會分配多出來的kernel thread來handle他... 而且我看網路上似乎都是說java thread真的能夠在不同core上平行執行...我想問的是 怎麼確定他有確實的把它分配到不同的kernel thread? ※ 編輯: keeperkai 來自: 140.113.210.11 (03/29 13:25)

03/29 15:29, , 3F
自己寫JNI呼叫OS的API
03/29 15:29, 3F
文章代碼(AID): #1FSsKMBc (java)