哪位高人有好办法能算出当前CPU最大支持工作线程数?????
我才开始学习线程,我有好多问题,自己想不明白。所以在这里想请高人给指点迷津。
ExecutorService pool=Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*10);
问题如下:
Runtime.getRuntime().availableProcessors() 可以获取当前系统工作的CPU数量。
根据CPU数量,动态建立一个足够大的线程池。我想问的是。如何可以计算出,每个线程所占用的CPU与内存大量,来分配一个合理的线程池。合当前CPU在最高工作效率下工作。
------解决方案--------------------貌似每个线程所占用的cpu 不太可能在运行之前知道吧 只能在运行的时候才知道的吧?
------解决方案--------------------最大线程数在操作系统有限制的,最主要的是你的服务有多快,如果每个服务都很快的可以少一点,一般建议每CPU不超过25个线程,当然多一点也没什么问题,不过就费点线程资源.