【多线程】并发执行指定数量的线程
有时候为了控制并发规模,我们需要对每次启动的线程做个数量上的限制,可以使用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(); } }
API参考
Executors.newFixedThreadPool(int)
Executor.execute(java.lang.Runnable)
Java™ Platform, Standard Edition 7
作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~