多线程的线程池开发

2020-07-19  本文已影响0人  engineer_tang

1. 线程池实现方法

简介:从Java 5开始,JAVA新增加了Executors工厂类来创建线程池,通过工厂类的静态工厂方法来创建对应需求的线程池。
(1) newCachedThreadPool(): 创建一个具有缓存功能的线程池。
(2) newFixedThreadPool(): 创建一个可重用、固定线程数的线程池。

package com.threadtest.poo;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class FixedThreadPoolTest {

    public static void main(String[] args) {
        Runnable target = () -> {
          for(int i = 0; i < 100; i++) {
              try {
                  Thread.sleep(100);
              }catch (InterruptedException e){

              }
              System.out.println(String.format("%s 打印数据: %s", Thread.currentThread().getName(), i));
          }
        };
        ExecutorService executorService = Executors.newFixedThreadPool(2);
        executorService.submit(target);
        executorService.submit(target);
        executorService.shutdown();
    }
}

(3) newSingleThreadExecutor(): 创建一个只有单线程的线程池。
(4) newScheduledThreadPool(): 创建具有指定线程数的线程池,它可以指定延迟后执行线程任务。
(5) newSingleThreadScheduledExecutor(): 创建只有一个线程的线程池,它可以指定延迟后执行线程任务。
(6) newWorkStealingPool(int parallelism): 创建持有足够的线程的线程池来支持给定的并行级别,该方法还会使用多个队列来减少竞争。当参数为空时,将根据CPU数进行默认设置。

上一篇下一篇

猜你喜欢

热点阅读