java线程池线程回收
来源:互联网 发布:二六三网络通信 编辑:程序博客网 时间:2024/05/16 09:08
注意: 一定要将线程回收,否则程序会一直等待!! 也可以关闭线程池,来退出程序,但是这样会导致新的任务无法执行!!
线程回收之后,有新的任务到来就会自动新建线程。
线程回收之后,有新的任务到来就会自动新建线程。
class Task implements Runnable{ private int x; //线程编号 public Task(int x) { this.x = x; } public void run() { System.out.println(x + " thread doing something!"); System.out.println("第" + x + "个线程执行完毕"); }}
1、设置线程池线程最大空闲时间,超出这个时间,对线程进行回收
不回收效果(程序一直等待,不退出):
public static void main(String[] args) throws InterruptedException { ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 5, 5, 1, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10, false), new ThreadPoolExecutor.CallerRunsPolicy() ); for (int i = 1; i <= 5; i++) { threadPool.execute(new Task(i)); } }
回收效果:
public static void main(String[] args) throws InterruptedException { ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 5, 5, 1, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10, false), new ThreadPoolExecutor.CallerRunsPolicy() ); threadPool.allowCoreThreadTimeOut(true); //线程的最大空闲时间,超出这个时间将进行回收 for (int i = 1; i <= 5; i++) { threadPool.execute(new Task(i)); } }
2、关闭线程池(关闭之后,有新任务却不会执行)
public static void main(String[] args) throws InterruptedException { ThreadPoolExecutor threadPool = new ThreadPoolExecutor( 5, 5, 1, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10, false), new ThreadPoolExecutor.CallerRunsPolicy() ); for (int i = 1; i <= 5; i++) { threadPool.execute(new Task(i)); } threadPool.shutdown(); try { //Thread.sleep(10*1000); } catch (Exception e) { e.printStackTrace(); } for (int i = 6; i <= 10; i++) { threadPool.execute(new Task(i)); } }
阅读全文
0 0
- java线程池线程回收
- 线程回收
- Java线程:线程池
- java--线程--线程池
- Java线程是否会被垃圾回收
- Java垃圾回收无效线程吗?
- 解决Java线程池任务执行完毕后线程回收问题
- 【Java多线程】写入同一文件,自定义线程池与线程回收利用
- linux线程回收
- linux线程资源回收
- 线程资源的回收
- 线程资源的回收
- Java线程(六):线程池
- Java线程(五):线程池
- Java线程(五):线程池
- Java线程_07_线程池
- Java线程(五):线程池
- Java线程(六):线程池
- Core Data 基本用法
- sscanf的高级用法
- CSU1777-大还是小?-模拟
- 用JQuery写的一个简单的验证码功能
- CSU1104-盒子游戏-博弈论
- java线程池线程回收
- 飞行
- CSU1549-Navigition Problem-几何简单题
- 84-98_实战项目详细说明
- Android_高级空间_2
- CSU1162-Balls in the Boxes-快速幂、数论
- php学习心得(一)
- String与StringBuffer的区别(最全比较)
- CSU1163-寒衣调-拓展欧几里得、乘法逆元