我搜索了以前关于类似主题的帖子,但找不到合适的答案,因此提出了这个问题。非常感谢您帮助回答。
我知道在 Linux 中通过 taskset 命令设置进程与特定 CPU 内核的关联。但是我想设置一个 Java 线程对特定 cpu 核心的亲和力,以便属于同一进程的其他线程可以在所有剩余的核心上运行。例如,如果我有一个包含 10 个线程和 4 核机器的进程,我想为一个线程保留 core-1 并让剩余的 9 个线程在剩余的 3 核上运行。可以做到吗?如何做到?
谢谢 萨钦
最佳答案
假设 2241 是您的 java 进程的 pid。运行:
jstack 2241
这为您提供了一个线程列表。在那里找到你的并记下 nid 字段。假设 nid=0x8e9,将 10 进制转换为 2281。然后运行:
taskset -p -c 0 2281
完成。
关于java - 如何设置Java线程的cpu核心亲和性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392379/