package yin;
import java.text.ParseException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Good {
public static void main(String[] args) throws ParseException {
// 带缓存的 无穷大
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
/* // 可以设置最大线程数
ExecutorService cachedThreadPool = Executors.newScheduledThreadPool(2);*/
/*// 单线程线程
ExecutorService cachedThreadPool = Executors.newSingleThreadExecutor();*/
// 开启一个线程
cachedThreadPool.execute(new Runnable() {
@Override
public void run() {
for (int k = 0; k < 1000; k++) {
System.out.println("第一线程"+k);
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
});
// 开启二个线程
cachedThreadPool.execute(new Runnable() {
@Override
public void run() {
for (int k = 0; k < 1000; k++) {
System.out.println("第二线程"+k);
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
});
// 开启三个线程
cachedThreadPool.execute(new Runnable() {
@Override
public void run() {
for (int k = 0; k < 1000; k++) {
System.out.println("第三线程"+k);
try {
Thread.sleep(3);
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
});
// 开启四个线程
cachedThreadPool.execute(new Runnable() {
@Override
public void run () {
for (int k = 0; k < 1000; k++) {
System.out.println("第四线程"+k);
try {
Thread.sleep(3);
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
});
//以下是等线程池的全部线程执行结束后,会自动执行。
cachedThreadPool.shutdown();
while (true) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
System.out.println("检测一次关闭");
if (cachedThreadPool.isTerminated()) {
System.out.println( "程序结束了,总耗时:");
break;
}
}
}
}