线程池可以解决以下场景:
1.当一个接口中,需要调用很多接口,而且互相独立时,如果串行执行,会使得接口响应缓慢(如果需要返回结果使用submit)。
2.当一个接口,调用其它接口且用时长不需要返回结果(可以使用excute)。
3.多个定时任务也可以使用线程池,因为@Scheduled是顺序执行,所以可以使用excute并行执行。
package ;
import ;
import ;
import ;
/**
* @Description TODO
* @Date 2021/11/16 9:21
* @Created by jingzhou16
* excute和submit的区别:/liuchuanfeng/p/
*/
public class TEST_THREAD {
public static int value = 0;
public static void main(String[] args) throws InterruptedException {
ThreadPoolExecutor texecutor = new ThreadPoolExecutor(2, 5, 60, , new LinkedBlockingDeque<>());
(new Runnable() {
@Override
public void run() {
while(value<50){
synchronized ("suo"){
value = ++value;
("线程一:"+value);
}
}
}
});
(new Runnable() {
@Override
public void run() {
while(value<50){
synchronized ("suo"){
value = ++value;
("线程二:"+value);
}
}
}
});
();
while(true){
if(()){
("所有的子线程都结束了!");
break;
}
(1000);
}
}
}