thread46
来源:互联网 发布:mac os x 10.12.6 编辑:程序博客网 时间:2024/06/05 12:58
package com.neutron.t23;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;/** * 线程池接口 * 了解线程池 */public class T235ThreadPool { public static void main(String[] args) throws InterruptedException { // 创建固定大小为5的线程池,线程池都实现ExecutorService接口 ExecutorService service = Executors.newFixedThreadPool(5); for (int i = 0; i < 6; i++) { // 向ExecutorService可以扔Callable或Runnable类型的任务 service.execute(() -> { try { TimeUnit.MILLISECONDS.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()); }); } /* java.util.concurrent.ThreadPoolExecutor@568db2f2 [Running, pool size = 5, active threads = 5, queued tasks = 1, completed tasks = 0] Running表示线程池状态 pool size = 5表示线程池大小 active threads = 5表示当前活跃的线程个数 queued tasks = 1表示在队列等待执行的线程个数,程序中0-5共6个线程,但是目前线程池只有5个,那会有1个线程等待 线程执行完成,但是线程不消失,不需要重新启动新的线程 */ System.out.println(service); // 线程池关闭,等待线程全部执行完毕,然后线程池关闭。 service.shutdown(); // 线程池关闭,但是不等待其他执行的线程,立刻关闭线程池 // service.shutdownNow(); // isTerminated判断所有的任务是否都执行完成 System.out.println(service.isTerminated()); // isShutdown判断线程池是否已经关闭,关闭进行中 System.out.println(service.isShutdown()); /* java.util.concurrent.ThreadPoolExecutor@568db2f2 [Shutting down, pool size = 5, active threads = 5, queued tasks = 1, completed tasks = 0] Shutting down表示正在关闭 */ System.out.println(service); // 主线程休息5秒 TimeUnit.SECONDS.sleep(5); System.out.println(service.isTerminated()); System.out.println(service.isShutdown()); /* java.util.concurrent.ThreadPoolExecutor@568db2f2 [Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 6] Terminated表示线程结束 completed tasks = 6表示完成任务个数 */ System.out.println(service); /* * 1个线程池维护两个队列: * * a.待处理任务队列 * b.已完成任务队列 */ }}
阅读全文
0 0
- thread46
- 单链表面试题--复杂链表的复制
- Wifi
- DragEnter、DragOver、DragDrop、leave、回车实现、事件的简单使用
- redis结合ssm框架中的使用,以AOP原理做一个redis缓存管理
- Python 用hashlib求中文字符串的MD5值
- thread46
- spring中ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的区别
- K-S正态检验
- 比较ADO与ODBC的区别
- Fiddler抓包使用教程-乱码处理 Decode
- 还是mui的日期选择插件使用,可以在弹出日期选择之前提问他是否想修改
- 【mongoDB高级篇①】聚集运算之group与aggregate
- LocalDate简介
- NS3网络仿真