线程池的使用案例

时间:2025-04-03 07:23:26

线程池可以解决以下场景:

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);
        }
    }

}