相关疑难解决方法(0)

每个处理器的线程数

在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万
查看次数

在Java中启用Intel超线程

我有一个在四核Intel i7上运行的多线程程序.当我执行时Runtime.getRuntime.availableProcessors(),我得到8,我知道在这个CPU上可以使用超线程.

但是,当我创建线程时,我的CPU级别为4个线程的100%(即非零),这意味着4个线程未被使用.有没有办法在Java中启用超线程?

java multithreading hyperthreading

5
推荐指数
1
解决办法
5833
查看次数