编程语言
首页 > 编程语言> > java-更改线程的目标核心

java-更改线程的目标核心

作者:互联网

告诉线程以编程方式更改正在运行的核心的方法是什么?

可以说我使用的是FX-8150,它具有一些核心,但是我希望我的线程之一特别是在5.core中工作.这可能吗?如果可以,请提供Java示例吗?该线程可以是另一个进程的线程或当前进程的线程.

我的伪示例:

time interval 1 : my_thread working in first core at 5GHz while other cores are 3.6 GHz
time interval 2 : my_thread working in second core at 5GHz while other cores are 3.6 GHz
time interval 3 : my_thread working in third core at 5GHz while other cores are 3.6 GHz
time interval 4 : my_thread working in fourth core at 5GHz while other cores are 3.6 GHz
time interval 5 : my_thread working in fifth core at 5GHz while other cores are 3.6 GHz
time interval 6 : my_thread working in sixth core at 5GHz while other cores are 3.6 GHz
time interval 7 : my_thread working in seventh core at 5GHz while other cores are 3.6 GHz
time interval 8 : my_thread working in eighth core at 5GHz while other cores are 3.6 GHz

所有其他内核将需要处于空闲状态.

解决方法:

我有一个名为Java Thread Affinity的库,该库可让您将运行中的线程分配给逻辑线程或核心.

在您的情况下,您至少需要为操作系统允许一个核心,并且可以在Linux中保留所有剩余的核心.线程库将线程分配给这些保留的核心.您想要保留cpus的原因是为了防止其他线程在该CPU上运行.您可以告诉库将线程分配给逻辑cpu或整个核心.您可以将线程分配给与另一个线程相同或不同的核心或套接字.

https://github.com/peter-lawrey/Java-Thread-Affinity/wiki/Getting-started

该库当前支持Windows和Linux.

标签:multithreading,cpu-usage,cpu-cores,java
来源: https://codeday.me/bug/20191031/1978753.html