线程池的使用
1.新建线程池,填写线程池的七大参数:
1
2static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(50, 100, 30, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1 << 16),
Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy()));2.新建任务,通过实现Runnable接口来创建新任务:
1
2
3
4
5
6
7
8
9
10
11
12
13Runnable task1 = new Runnable() {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("线程2:"+i);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};3.使用线程池执行任务:
1
threadPool.execute(task1);
以上三步也可以通过lambda表达式函数式编程一步完成:
1
2new ThreadPoolExecutor(1, 1, 3, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1 << 16),
Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy()).execute(() -> System.out.println("线程2"));