【问题标题】:java how to define size of newFixedThreadPool [duplicate]java如何定义newFixedThreadPool的大小[重复]
【发布时间】:2015-10-20 02:53:08
【问题描述】:

我只是想知道如何在 java 中定义固定线程池的大小?

你是不是随便选一个10、100、16、32、1024这样的数字,然后看看内存满载是否正常?

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

我的想法是,如果一个线程需要 1 个核心 100% 的功率,CPU 将无法处理比其核心数量更多的线程:

ex : 双核 cpu >>> newFixedThreadPool(2)

四核 >>> newFixedThreadPool(4)

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

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

感谢您的回答/意见

【问题讨论】:

标签: java multithreading size pool cpu-cores


【解决方案1】:

根据Saravana的链接,

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

似乎是要走的路

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2020-04-08
    相关资源
    最近更新 更多