相关疑难解决方法(0)

Java线程亲和力

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

谢谢!

java multithreading scheduling setthreadaffinitymask

61
推荐指数
2
解决办法
3万
查看次数

每个处理器的线程数

在Java中,是否有一种编程方式可以找出CPU支持多少并发线程?

更新

为了澄清,我不是试图用线程来锤击CPU,而是我知道Runtime.getRuntime().availableProcessors()函数,它提供了我正在寻找的部分信息.

我想知道是否有办法自动调整线程池的大小,以便:

  • 如果我在1岁的服务器上运行,我会得到2个线程(每个CPU 1个线程x 2个任意乘数)
  • 如果我从现在开始两年后切换到Intel i7四核(每个核心支持2个线程),我会得到16个线程(每个CPU 2个逻辑线程x 4个CPU x 2个任意乘数).
  • 相反,如果我使用八核Ultrasparc T2服务器(每个核心支持8个线程),我得到128个线程(每个CPU 8个线程x 8个CPU x 2个任意乘数)
  • 如果我在可能在不同年份购买的30台不同机器的集群上部署相同的软件,我不需要读取CPU规格并为每一台机器设置配置选项.

java concurrency

25
推荐指数
3
解决办法
3万
查看次数