【二三方】_线程池的使用

线程池的使用

  • 1.新建线程池,填写线程池的七大参数:

    1
    2
    static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(50, 100, 30, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1 << 16),
    Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy()));
  • 2.新建任务,通过实现Runnable接口来创建新任务:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Runnable task1 = new Runnable() {
    @Override
    public void run() {
    for (int i = 0; i < 10; i++) {
    System.out.println("线程2:"+i);
    try {
    Thread.sleep(500);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    };
  • 3.使用线程池执行任务:

    1
    threadPool.execute(task1);
  • 以上三步也可以通过lambda表达式函数式编程一步完成:

    1
    2
    new ThreadPoolExecutor(1, 1, 3, TimeUnit.SECONDS, new ArrayBlockingQueue<>(1 << 16),
    Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy()).execute(() -> System.out.println("线程2"));