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)对于双核心?
感谢您的回答/意见
(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