import java.util.concurrent.*;
/**
* java线程池的使用,这个【单线程化线程池】,好像也没什么用?
*/
public class ExecutorServiceTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i < 10; i++) {
final int index = i;
singleThreadExecutor.execute(new Runnable() {
@Override
public void run() {
try {
System.out.println(index + Thread.currentThread().getName());
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
运行结果:
0pool-1-thread-1
1pool-1-thread-1
2pool-1-thread-1
3pool-1-thread-1
4pool-1-thread-1
5pool-1-thread-1
6pool-1-thread-1
7pool-1-thread-1
8pool-1-thread-1
...........
newSingleThreadExecutor
创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。