主要抄了三种:
newSingleThreadExecutor
newCachedThreadPool()
newFixedThreadPool(int)
package demo.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadMain {
public static void main(String[] args) throws Exception {
ExecutorService sexecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i < 5; i++) {
final int no =i;
Runnable runnable = new Runnable() {
public void run() {
try {
System.out.println("Single executor into " + no);
Thread.sleep(1000L);
System.out.println("Single executor end " + no);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
sexecutor.execute(runnable);
}
sexecutor.shutdown();
ExecutorService cexecutor = Executors.newCachedThreadPool();
for (int i = 0; i < 20; i++) {
final int no =i;
Runnable runnable = new Runnable() {
public void run() {
try {
System.out.println("Cached executor into " + no);
Thread.sleep(1000L);
System.out.println("Cached executor end " + no);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
cexecutor.execute(runnable);
}
cexecutor.shutdown();
ExecutorService fexecutor = Executors.newFixedThreadPool(5);
for (int i = 0; i < 20; i++) {
final int no =i;
Runnable runnable = new Runnable() {
public void run() {
try {
System.out.println("Fixed executor into " + no);
Thread.sleep(1000L);
System.out.println("Fixed executor end " + no);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
fexecutor.execute(runnable);
}
fexecutor.shutdown();
System.out.println("The main thread end.");
}
}
Single executor into 0
Cached executor into 1
Cached executor into 0
Cached executor into 2
Cached executor into 3
Cached executor into 4
Cached executor into 5
Cached executor into 6
Cached executor into 7
Cached executor into 8
Cached executor into 9
Cached executor into 10
Cached executor into 11
Cached executor into 12
Cached executor into 17
Cached executor into 14
Cached executor into 13
Cached executor into 18
Cached executor into 16
Cached executor into 15
Cached executor into 19
Fixed executor into 1
Fixed executor into 2
The main thread end.
Fixed executor into 0
Fixed executor into 4
Fixed executor into 3
Single executor end 0
Single executor into 1
Cached executor end 4
Cached executor end 3
Cached executor end 0
Cached executor end 1
Cached executor end 2
Cached executor end 7
Cached executor end 6
Cached executor end 11
Cached executor end 13
Cached executor end 17
Cached executor end 5
Cached executor end 9
Cached executor end 10
Cached executor end 12
Cached executor end 8
Cached executor end 18
Cached executor end 14
Cached executor end 16
Cached executor end 15
Cached executor end 19
Fixed executor end 1
Fixed executor into 5
Fixed executor end 0
Fixed executor end 4
Fixed executor into 7
Fixed executor end 2
Fixed executor into 8
Fixed executor into 6
Fixed executor end 3
Fixed executor into 9
Single executor end 1
Single executor into 2
Fixed executor end 5
Fixed executor into 10
Fixed executor end 6
Fixed executor into 11
Fixed executor end 7
Fixed executor into 12
Fixed executor end 8
Fixed executor into 13
Fixed executor end 9
Fixed executor into 14
Single executor end 2
Single executor into 3
Fixed executor end 10
Fixed executor into 15
Fixed executor end 12
Fixed executor end 13
Fixed executor end 11
Fixed executor into 17
Fixed executor into 16
Fixed executor into 18
Fixed executor end 14
Fixed executor into 19
Single executor end 3
Single executor into 4
Fixed executor end 15
Fixed executor end 18
Fixed executor end 16
Fixed executor end 17
Fixed executor end 19
Single executor end 4