Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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

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
最多运行n个Java线程_Java_Multithreading - Fatal编程技术网

最多运行n个Java线程

最多运行n个Java线程,java,multithreading,Java,Multithreading,我有一个CPU密集型应用程序,可以用Java编写。应用程序由几个独立运行的作业(线程)组成 如果一次启动所有线程,系统将过载。如何一次最多启动n个线程,当一个线程完成时,又启动一个新线程?通过限制一次运行的线程数量,我打算让一些其他处理器/内核可用于其他任务 谢谢使用固定大小的执行器池 ExecutorService executor = Executors.newFixedThreadPool(4); 您应该将线程的任务表述为Runnables或Callables,然后将它们提交给固定的线

我有一个CPU密集型应用程序,可以用Java编写。应用程序由几个独立运行的作业(线程)组成

如果一次启动所有线程,系统将过载。如何一次最多启动n个线程,当一个线程完成时,又启动一个新线程?通过限制一次运行的线程数量,我打算让一些其他处理器/内核可用于其他任务


谢谢使用固定大小的执行器池

 ExecutorService executor = Executors.newFixedThreadPool(4);

您应该将线程的任务表述为
Runnable
s或
Callable
s,然后将它们提交给固定的线程池执行器。执行器将管理工作线程池,并从这些线程上的内部队列运行任务

有关创建所需执行器类型的工厂方法,请参阅。

谢谢。参考资料给出了一个明确的例子。