美文网首页
多线程的线程池开发

多线程的线程池开发

作者: engineer_tang | 来源:发表于2020-07-19 08:04 被阅读0次

    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数进行默认设置。

    相关文章

      网友评论

          本文标题:多线程的线程池开发

          本文链接:https://www.haomeiwen.com/subject/gkqlkktx.html