四、使用 ThreadPoolExecutor 简单使用
package com.test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class Test {
public static void main(String[] args) {
ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 12; i++) {
newCachedThreadPool.execute(new MyRunnablee(i));
}
newCachedThreadPool.shutdown();
ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(5);
for (int i = 0; i < 12; i++) {
newFixedThreadPool.execute(new MyRunnablee(i));
}
newFixedThreadPool.shutdown();
ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(5);
for (int i = 0; i <10; i++) {
newScheduledThreadPool.schedule(new MyRunnablee(i), 3, TimeUnit.SECONDS);
}
newScheduledThreadPool.shutdown();
ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i <10; i++) {
newSingleThreadExecutor.execute(new MyRunnablee(i));
}
newSingleThreadExecutor.shutdown();
}
}
class MyRunnablee implements Runnable {
int flag ;
public MyRunnablee(int flag) {
this.flag = flag;
}
public void run() {
System.out.println(Thread.currentThread().getName() + ":执行run--"+flag);
}
}