有时候为了控制并发规模,我们需要对每次启动的线程做个数量上的限制,可以使用Executors.newFixedThreadPool(int)这个方法。
一个线程类,运行中休息几秒为了观察现象更为明显
package com.nicchagil.study.thread.cnblogs.No01启动固定数量的线程; import java.util.concurrent.TimeUnit; public class MyThread extends Thread { @Override public void run() { System.out.println(this.getName()); /* 设置短暂的停止以看效果 */ try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace(); } } }
启动类
package com.nicchagil.study.thread.cnblogs.No01启动固定数量的线程; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Call { public static void main(String[] args) { /* * 并发执行指定数量的线程 */ ExecutorService es = Executors.newFixedThreadPool(2); for (int i = 0; i < 5; i++) { es.execute(new MyThread()); } es.shutdown(); } }
Executors.html.newFixedThreadPool(int)
ExecutorService.html.submit(java.lang.Runnable)
ExecutorService.html.shutdown()
Java™ Platform, Standard Edition 7
原文:http://www.cnblogs.com/nick-huang/p/4743520.html