在并行 Java 代码中,我们可以了解线程在哪个核心上执行吗?
假设我有 10 个线程和 4 个核心,是否可以在代码中了解哪个核心用于线程 1、线程 2、线程 3 等?
这不是一个关键问题,但我想知道是否可能。
最佳答案
In a parallel Java code can we learn which core a thread is executed on?
从 Java 内部来看,答案是否定的。有多种方法可以查看 Linux(也可能是其他 Unixen)中的进程列表,这些方法可以向您显示虚拟进程以及 CPU 关联性。然而,这是非常不可移植的,对于上下文切换的任务来说,它没有意义。
我在这里有一些关于 CPU 信息的更多详细信息,但它没有解决亲和性问题:Concurrency of posix threads in multiprocessor machine
关于java - 执行线程核心数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847103/