猿问

Java线程亲和力

Java线程亲和力

有没有人知道如何将Java进程中的各个线程锁定到特定的CPU内核(在Linux上)?我在C中完成了这个,但是在Java中找不到如何做到这一点。我的直觉是这需要一个JNI电话,但我希望这里有人可能有一些见解或者可能以前做过。



湖上湖
浏览 325回答 3
3回答

冉冉说

我知道已经有一段时间了,但如果有人遇到这个帖子,我就是这样解决这个问题的。我写了一个脚本,可以执行以下操作:“jstack -l”获取结果,找到我想手动锁定到核心的线程的“nid”。任务集那些线程。

一只萌萌小番薯

这是不可能的(至少用普通的Java)。您可以使用线程池来限制用于不同类型工作的线程(以及因此核心)的数量,但是无法指定要使用的核心。您的Java运行时甚至可能(小)可能不支持您的操作系统或硬件的本机线程。在这种情况下,使用绿色线程,并且只有一个核心将用于整个JVM。
随时随地看视频慕课网APP

相关分类

Java
我要回答