前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java并发线程池

java并发线程池

作者头像
王念博客
发布2019-07-24 10:39:45
4390
发布2019-07-24 10:39:45
举报
文章被收录于专栏:王念博客王念博客

前言:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果

1.创建java原生线程池的四种方式

代码语言:javascript
复制
      //创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
        ExecutorService executorService = Executors.newCachedThreadPool();
        executorService.execute(new Test("1"));
        executorService.execute(new Test("2"));
        executorService.execute(new Test("3"));

        //创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
        ExecutorService executorService1 = Executors.newFixedThreadPool(2);
        executorService1.execute(new Test("1"));
        executorService1.execute(new Test("2"));
        executorService1.execute(new Test("3"));

        // 创建一个定长线程池,支持定时及周期性任务执行。
        ExecutorService executorService2 = Executors.newScheduledThreadPool(2);
        executorService2.execute(new Test("1"));
        executorService2.execute(new Test("2"));
        executorService2.execute(new Test("3"));

        //创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行
        ExecutorService executorService3 = Executors.newSingleThreadExecutor();
        executorService3.execute(new Test("1"));
        executorService3.execute(new Test("2"));
        executorService3.execute(new Test("3"));

2.创建Spring线程池的方式

代码语言:javascript
复制
  @Bean
    public ThreadPoolTaskExecutor createThreadPoolTaskExecutor() {
        ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
        threadPoolTaskExecutor.setCorePoolSize(10);
        threadPoolTaskExecutor.setMaxPoolSize(20);
        return threadPoolTaskExecutor;
    }
代码语言:javascript
复制
     @注入 taskExecutor

     taskExecutor.execute(new Test("3"));
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档