Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java线程池执行器默认值_Java_Multithreading_Oracle_Executor_Queueing - Fatal编程技术网

java线程池执行器默认值

java线程池执行器默认值,java,multithreading,oracle,executor,queueing,Java,Multithreading,Oracle,Executor,Queueing,我正在阅读Oracles文档,特别是关于排队的文档,以防请求超过可用线程。但是,我没有找到默认设置是什么 要实例化执行器,我只需执行以下操作: executor = Executors.newFixedThreadPool(numberOfThreads); 其中executor来自java.util.concurrent.ExecutorService,executor是由java.util.concurrent.Executors给出的 从这里开始,执行人再次出现的唯一一行是: execu

我正在阅读Oracles文档,特别是关于排队的文档,以防请求超过可用线程。但是,我没有找到默认设置是什么

要实例化执行器,我只需执行以下操作:

executor = Executors.newFixedThreadPool(numberOfThreads);
其中executor来自java.util.concurrent.ExecutorService,executor是由java.util.concurrent.Executors给出的

从这里开始,执行人再次出现的唯一一行是:

executor.execute(worker);
如您所见,我从未设置任何关于执行器正在使用的队列类型或大小的属性

我想知道的是,我链接的文档中描述的策略中有哪些正在使用

对于我所展示的实现:我使用的是无界队列吗?它有界吗?如果是,默认尺寸是多少

您只需阅读:

公共静态执行器服务newFixedThreadPool(int-nThreads)

创建一个线程池,该线程池重用在共享的无界队列上运行的固定数量的线程。在任何时候,最多N个线程将是活动的处理任务。如果在所有线程都处于活动状态时提交其他任务,它们将在队列中等待,直到有线程可用

(强调矿山)

如果您想获得最大的灵活性,可以使用ThreadPoolExecutor构造函数,它可以让您选择所需的每个细节。

您只需阅读:

公共静态执行器服务newFixedThreadPool(int-nThreads)

创建一个线程池,该线程池重用在共享的无界队列上运行的固定数量的线程。在任何时候,最多N个线程将是活动的处理任务。如果在所有线程都处于活动状态时提交其他任务,它们将在队列中等待,直到有线程可用

(强调矿山)

如果您想获得最大的灵活性,可以使用ThreadPoolExecutor构造函数,它可以让您选择所需的每个细节。

请参阅Executors src

public static ExecutorService  newFixedThreadPool(int nThreads) {
         return new ThreadPoolExecutor (nThreads, nThreads,
                                       0L, TimeUnit.MILLISECONDS,
                                       new LinkedBlockingQueue <Runnable >());
}
publicstaticexecutorservice newFixedThreadPool(int-nThreads){
返回新的ThreadPoolExecutor(第n个线程,第n个线程,
0L,时间单位为毫秒,
新LinkedBlockingQueue());
}
正如我们所看到的,它是无限的LinkedBlockingQueue

public static ExecutorService  newFixedThreadPool(int nThreads) {
         return new ThreadPoolExecutor (nThreads, nThreads,
                                       0L, TimeUnit.MILLISECONDS,
                                       new LinkedBlockingQueue <Runnable >());
}
publicstaticexecutorservice newFixedThreadPool(int-nThreads){
返回新的ThreadPoolExecutor(第n个线程,第n个线程,
0L,时间单位为毫秒,
新LinkedBlockingQueue());
}
正如我们所看到的,它是无界LinkedBlockingQueue