2015-10-20 60 views
0

我只是想知道如何在java中定义fixedthreadpool的大小?java如何定义newFixedThreadPool的大小

你是否随意选择一个数字,如10,100,16,32,1024,然后看看内存是否满负荷状态?

我正在考虑定义根据可用核心

的数量大小

我的想法是,如果一个线程需要在1芯100%的功率由能够在CPU不会处理比它的内核数量更多的线程:

例如:双核CPU >>>的newFixedThreadPool(2)

四核>>>的newFixedThreadPool(4)

然而,如果一个线程需要像芯的10%的CPU功率,是它然后相关去做

1/0.1 *核心数=> newFixedThreadPool(20)为双核?

谢谢您的回答/意见

+3

请参阅http://stackoverflow.com/questions/1980832/java-how-to-scale-threads-according-to-cpu-cores?rq=1 – Saravana

+0

方式谢谢,那就是我一直在寻找的 –

回答

0

据toSaravana的链接,

ExecutorService的E = Executors.newFixedThreadPool(调用Runtime.getRuntime()availableProcessors());

好像是去