线程池

步骤

  1. 提供指定线程数量的线程池
  2. 执行指定的线程的操作。需要提供实现Runnable接口或Callable接口实现类的对象
  3. 关闭线程池

好处

  1. 提高响应速度(减少了创建新线程的时间)
  2. 降低资源消耗(重复利用线程池中线程,不需要每次都创建)
  3. 便于线程管理
    corePoolSize:核心池的大小
    maximumPoolSize:最大线程数
    keepAliveTime:线程没有任务时最多保持多长时间后会终止
package com.yicurtain.THREAD;



import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
class Numbers implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if(i%2==0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }

    }
}
class Numbers1 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if(i%2!=0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }

    }
}
public class ThreadPool {
    public static void main(String[] args) {
       // 1.提供指定线程数量的线程池
        ExecutorService Service = Executors.newFixedThreadPool(10);
        //2.执行指定的线程的操作。需要提供实现Runnable接口或Callable接口实现类的对象
        Service.execute(new Numbers());

        Service.execute(new Numbers1());//适合Runnable
        //Service.submit()  适合Callable
        //3.关闭线程池
        Service.shutdown();
    }
}

posted on 2021-06-20 22:00  yicurtain  阅读(31)  评论(0)    收藏  举报