2013-05-30 81 views
1

在並行Java代碼中,我們可以瞭解線程在哪個核心上執行?已執行線程的核心編號

假設我有10個線程和4個內核,是否有可能在代碼中瞭解哪個內核用於線程1,線程2,線程3等?

這不是一個關鍵問題,但我想知道它是否可能。

+1

非常不可能... Java有沒有這樣的低級別的訪問,反正它是OS它會告訴你最終,並不確定您的CPU的物理佈局是否被提及! – fge

+0

你可以從這個Q/A中推斷出你的答案:http://stackoverflow.com/q/1896065/1065197 –

+1

你想做什麼?你爲什麼需要這些信息? – Gray

回答

2

在並行Java代碼中,我們可以瞭解線程在哪個內核上執行?

從Java裏面,答案是否定的。有一些方法可以查看Linux中的進程列表(也可能是其他的Unixen),這些列表可以向您顯示虛擬進程和可能的CPU關聯。這是非常不可移植的,但對於上下文切換的任務來說,這並不會有意義。

我對CPU的信息在這裏一些更多的細節,但它並沒有解決問題的親和力:Concurrency of posix threads in multiprocessor machine