Java newfixedthreadpool示例
时间:2020-02-23 14:35:05 来源:igfitidea点击:
在本教程中,我们将了解executor的newfixedthreadpool工厂方法。
在最后一个教程中,我已经分享了ThreadPoolExecutor的介绍。
如果你不知道的概念 ThreadPoolExecutor
,你应该先经过这一点。
executor的newfixedthreadpool工厂方法:
此方法返回 ThreadPoolExecutor
其最大大小(假设n个线程)是固定的。
如果所有n个线程正忙于执行任务,并且提交了其他任务,那么它们必须在队列中,直到线程可用。
语法:
ExecutorService executorService=Executors.newFixedThreadPool(noOfThreads);
Java newfixedthreadpool示例:
让我们创建一个非常简单的例子。
步骤1:创建名为"looptask.java"的可追踪任务。
package org.igi.theitroad; public class LoopTask implements Runnable { private String loopTaskName; public LoopTask(String loopTaskName) { super(); this.loopTaskName = loopTaskName; } @Override public void run() { System.out.println("Starting "+loopTaskName); for (int i = 1; i <= 10; i++) { System.out.println("Executing "+loopTaskName+" with "+Thread.currentThread().getName()+"===="+i); } System.out.println("Ending "+loopTaskName); } }
第2步:创建一个名为的类 FixedThreadPoolMain.java
。
这将是我们的主班。
package org.igi.theitroad; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class FixedThreadPoolMain { public static void main(String args[]) { ExecutorService es=Executors.newFixedThreadPool(3); for (int i = 1; i <= 6; i++) { LoopTask loopTask=new LoopTask("LoopTask "+i); es.submit(loopTask); } es.shutdown(); } }
我们使用了新的 newFixedThreadPool
,所以在我们提交的时候 6 tasks
那 3 new threads
将被创建并将执行 3 tasks
。 Other 3 tasks
将等待等待 queue
。
一旦通过线程完成任何任务,将通过此线程挑选另一个任务,并将执行它。