哪位高人有好办法能算出当前CPU最大支持工作线程数?????

时间:2021-12-29 10:54:03
我才开始学习线程,我有好多问题,自己想不明白。所以在这里想请高人给指点迷津。
ExecutorService pool=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*10);

问题如下:
Runtime.getRuntime().availableProcessors() 可以获取当前系统工作的CPU数量。
根据CPU数量,动态建立一个足够大的线程池。我想问的是。如何可以计算出,每个线程所占用的CPU与内存大量,来分配一个合理的线程池。合当前CPU在最高工作效率下工作。

3 个解决方案

#1


貌似每个线程所占用的cpu 不太可能在运行之前知道吧  只能在运行的时候才知道的吧?

#2


最大线程数在操作系统有限制的,最主要的是你的服务有多快,如果每个服务都很快的可以少一点,一般建议每CPU不超过25个线程,当然多一点也没什么问题,不过就费点线程资源.

#3


谢谢两位的指点。

#1


貌似每个线程所占用的cpu 不太可能在运行之前知道吧  只能在运行的时候才知道的吧?

#2


最大线程数在操作系统有限制的,最主要的是你的服务有多快,如果每个服务都很快的可以少一点,一般建议每CPU不超过25个线程,当然多一点也没什么问题,不过就费点线程资源.

#3


谢谢两位的指点。