设为首页 加入收藏

TOP

Java线程池:ExecutorService,Executors
2015-02-25 16:14:30 来源: 作者: 【 】 浏览:32
Tags:Java 线程 ExecutorService Executors

简单的Java线程池可以从Executors.newFixedThreadPool( int n)获得。此方法返回一个线程容量为n的线程池。然后ExecutorService的execute执行之。


现给出一个示例。


package zhangphil.executorservice;


import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class ZhangPhilExecutorService {


?// 为了容易理解线程池的概念,假设容量只有2的线程池。
?// 实际使用过程中当然可以更多!
?private final int NUMBER = 2;


?public ZhangPhilExecutorService() {
? // 创建容量为2的线程池。
? ExecutorService pool = Executors.newFixedThreadPool(NUMBER);


? for (int i = 0; i < 10; i++) {
? ?Thread t = new TestThread(i);
? ?System.out.println("线程池执行线程id:" + i);
? ?pool.execute(t);
? }


? // 关闭线程池。
? pool.shutdown();
?}


?private class TestThread extends Thread {


? private int id;


? public TestThread(int id) {
? ?this.id = id;
? }


? @Override
? public void run() {


? ?System.out.println("线程:" + id + " -> 运行...");


? ?try {
? ? Thread.sleep(5000);
? ?} catch (Exception e) {
? ? e.printStackTrace();
? ?}


? ?System.out.println("线程:" + id + " -> 结束!");
? }
?}


?public static void main(String[] args) {
? new ZhangPhilExecutorService();
?}
}


运行的输出结果:


线程池执行线程id:0
线程池执行线程id:1
线程池执行线程id:2
线程池执行线程id:3
线程:0 -> 运行...
线程池执行线程id:4
线程:1 -> 运行...
线程池执行线程id:5
线程池执行线程id:6
线程池执行线程id:7
线程池执行线程id:8
线程池执行线程id:9
线程:1 -> 结束!
线程:0 -> 结束!
线程:2 -> 运行...
线程:3 -> 运行...
线程:3 -> 结束!
线程:2 -> 结束!
线程:4 -> 运行...
线程:5 -> 运行...
线程:4 -> 结束!
线程:5 -> 结束!
线程:6 -> 运行...
线程:7 -> 运行...
线程:7 -> 结束!
线程:6 -> 结束!
线程:8 -> 运行...
线程:9 -> 运行...
线程:9 -> 结束!
线程:8 -> 结束!


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在Tableau中自定义版块地图 下一篇Android获得全局进程信息以及进程..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: