您的位置:首页 > 其它

张孝祥线程池的概念和Executors类的应用(学习笔记)

2014-03-29 22:34 411 查看
package cn.javaious.concurrence;

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

public class ThreadPoolTest {
public static void main(String[] args) {
//ExecutorService threadPool =  Executors.newFixedThreadPool(3); 创建固定大小的线程池
//ExecutorService threadPool =  Executors.newCachedThreadPool();	//创建缓存线程池
ExecutorService threadPool =  Executors.newSingleThreadExecutor();	//创建单一线程池 好处:线程死了会产生替补线程
for(int i=1; i<=10; i++) {
final int task = i;
threadPool.execute(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int j=1;j<10;j++) {
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+ " is looping of "+ j +" for task of "+task);
}

}
});
}
System.out.println("all of 10 tasks have committed! ");
//	threadPool.shutdownNow(); 关闭线程池

//用线程池启动定时器
Executors.newScheduledThreadPool(3).scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("boming!");
}
}, 6,2, TimeUnit.SECONDS);	//6秒后boming,以后每隔2秒boming
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息