为了账号安全,请及时绑定邮箱和手机立即绑定

Java线程亲和力

Java线程亲和力

湖上湖 2019-07-30 14:46:43
Java线程亲和力有没有人知道如何将Java进程中的各个线程锁定到特定的CPU内核(在Linux上)?我在C中完成了这个,但是在Java中找不到如何做到这一点。我的直觉是这需要一个JNI电话,但我希望这里有人可能有一些见解或者可能以前做过。
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

我知道已经有一段时间了,但如果有人遇到这个帖子,我就是这样解决这个问题的。我写了一个脚本,可以执行以下操作:

  1. “jstack -l”

  2. 获取结果,找到我想手动锁定到核心的线程的“nid”。

  3. 任务集那些线程。


查看完整回答
反对 回复 2019-07-30
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

这是不可能的(至少用普通的Java)。

您可以使用线程池来限制用于不同类型工作的线程(以及因此核心)的数量,但是无法指定要使用的核心。

您的Java运行时甚至可能(小)可能不支持您的操作系统或硬件的本机线程。在这种情况下,使用绿色线程,并且只有一个核心将用于整个JVM。


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信