2013-05-30 47 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