在并行Java代码中,我们可以了解一个线程在哪个核心上执行?
假设我有10个线程和4个核心,是否可以在代码中了解哪个核心用于线程1,线程2,线程3等?
这不是一个至关重要的问题,但我想知道是否可能。
答案 0 :(得分:2)
在并行Java代码中,我们可以了解一个线程在哪个核心上执行?
从Java内部来看,答案是否定的。有很多方法可以查看Linux(以及其他Unixen)中的进程列表,它可以显示虚拟进程和CPU亲和性。这是非常不便携的,对于上下文切换的任务,它没有意义。
我在这里有一些关于CPU信息的更多细节,但它没有解决亲和力问题:Concurrency of posix threads in multiprocessor machine