This question already has answers here:
How to scale threads according to CPU cores?
                                
                                    (6个答案)
                                
                        
                                4年前关闭。
            
                    
我只是想知道如何在Java中定义fixedthreadpool的大小?

您是否会随意选择一个数字,例如10、100、16、32、1024,然后查看内存以查看满载情况是否可以?

我正在考虑根据可用内核数定义大小

我的想法是,如果一个线程在1个内核上需要100%的功耗,则cpu将无法处理比其内核数更多的线程:

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

四核>>> newFixedThreadPool(4)

但是,如果一个线程占用内核的10%的cpu功率,那么是否有理由这样做

1 / 0.1 *核心数量=> newFixedThreadPool(20)对于双核心?

感谢您的回答/意见

最佳答案

根据萨拉瓦那的链接,

ExecutorService e = Executors.newFixedThreadPool(Runtime.getRuntime()。availableProcessors());

似乎是要走的路

09-11 02:17