关于线程池中线程任务的问题
来源:3-1 线程池的简介

慕函数0594413
2020-07-30
老师你好,在使用线程池开发过程中发现个问题,虽然我们在主线程中等待任务执行的时候,可以设置等待时间,但是我发现对于线程池,那个线程依然是在工作。具体代码如下:
所以有没办法,是让线程池中真正在工作的那条线程停止下来。不然遇到耗时的任务,线程池的线程等于就少一条。
问题二
之前课程有个例子是通过 while(!Thread.currentThread().isInterrupted()) 去检测外界有没终止该线程。
线程执行任务的时候,很难一直判断isInterrupted。
假设是一条很耗时的业务任务。是否每执行一个步骤,就手动的判断isInterrupted
这样代码很臃肿。而且业务逻辑中穿插线程状态的判断。感觉不太雅观。
有没什么比较科学的做法。
写回答
1回答
-
正规办法就是通过判断中断,如果任务是单次的,那么可以接受等待执行完毕,如果任务是带循环的,就在循环条件里判断。
012020-07-31
相似问题