文章目录

  • Executors
  • 重要方法
    • 1、newCachedThreadPool
    • 2、newFixedThreadPool
    • 3、newScheduledThreadPool
      • 示例代码
    • 4、newSingleThreadExecutor
  • 相关学习路线

Executors

主要用来创建线程池,代理了线程池的创建,使得你的创建入口参数变得简单

重要方法

1、newCachedThreadPool

创建一个可缓存线程池,如果线程池长度超过处理需 要,可灵活回收空闲线程,若无可回收,则新建线程。

2、newFixedThreadPool

创建一个定长线程池,可控制线程最大并发数,超出的 线程会在队列中等待。

3、newScheduledThreadPool

创建一个定长线程池,支持定时及周期性任务执行。

示例代码

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class ExecutorsTest {public static void main(String[] args) {ScheduledExecutorService es = Executors.newScheduledThreadPool(1);//延迟三秒执行es.schedule(new Runnable() {public void run() {System.out.println("我在跑......");}},3, TimeUnit.SECONDS);es.shutdown();}}

4、newSingleThreadExecutor

创建一个单线程化的线程池,它只会用唯一的工作 线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

相关学习路线

JAVA资深架构师成长路线->架构师筑基必备技能->并发编程进阶

java并发编程学习juc工具类之Executors相关推荐

  1. Java 并发编程之同步工具类闭锁 CountDownLatch

    Java 同步工具类CountDownLatch相当于一个计数器,假设一个方法,等待一个计数器从初始值5变为0,每使用一次countdown()方法,计数器的值减少1,当计数器的值为0时,触发某件事. ...

  2. Java 并发编程之同步工具类 Exchanger

    Exchanger 交换器,用于两个线程之间交换数据. 线程1调用exchange()方法,然后进行线程阻塞,等待线程2调用exchange()方法交换数据,线程2调用exchange()方法后,两个 ...

  3. Java 并发编程之同步工具类栅栏 CyclicBarrier

    CyclicBarrier 用来阻塞一组线程,等待线程完成后才开始某件事情. 例如,开启5个线程,每个线程使用await方法开始阻塞,等待5个线程都完成,才开始执行await方法后面的代码. publ ...

  4. Java 并发编程之同步工具类信号量 Semaphore

    Semaphore 可以理解为一个阈值,正在进行的操作数量不能超过此阈值,可以用来限制资源的访问,或者控制某个队列中对象的个数,也就是控制同时执行的线程的数量. 主要有acquire,release两 ...

  5. Java并发编程(JUC)

    目录 前言 一.Java并发编程(JUC)是什么? 二.Java创建多线程的4种方式 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口 4.线程池 三.sychorn ...

  6. java并发编程学习一

    java并发编程学习一 什么是进程和线程? 进程是操作系统进行资源分配的最小单位 进程跟进程之间的资源是隔离的,同一个进程之中的线程可以共享进程的资源. 线程是进程的一个实体,是CPU 调度和分派的基 ...

  7. java并行任务,Java 并发编程学习(五):批量并行执行任务的两种方式

    Java 并发编程学习(五):批量并行执行任务的两种方式 背景介绍 有时候我们需要执行一批相似的任务,并且要求这些任务能够并行执行.通常,我们的需求会分为两种情况: 并行执行一批任务,等待耗时最长的任 ...

  8. Java并发编程学习 + 原理分析(建议收藏)

    总结不易,如果对你有帮助,请点赞关注支持一下 微信搜索程序dunk,关注公众号,获取博客源码 Doug Lea是一个无私的人,他深知分享知识和分享苹果是不一样的,苹果会越分越少,而自己的知识并不会因为 ...

  9. 简明高效的 Java 并发编程学习指南

    你好,我是宝令,<Java 并发编程实战>专栏作者,很高兴你能看到这篇内容. 对于一个Java程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一.因为并发编程是Java语言中最 ...

最新文章

  1. ppk on JavaScript第二章:背景(完结篇)
  2. python做些什么-学会Python后都能做什么?网友们的回答简直不要太厉害
  3. python统计文章单词次数
  4. 单板计算机倍受欢迎 廉价的ARM计算机能干嘛
  5. 数据挖掘SPSS Clementine 12.0.3 多国语言(含中文)破解版
  6. 基于以太坊的分布式投票系统solidity合约代码
  7. centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复...
  8. [原]最大流, 最小分割分析
  9. 北斗三号频点_解码北斗三号
  10. 计算机怎么禁止远程桌面,win7怎样禁用远程桌面共享_win7系统禁用远程桌面共享的步骤-系统城...
  11. C语言数组指针和指向数组的指针变量—数组名作函数参数.doc
  12. Java项目第24期springboot实现简单点餐系统
  13. 550+超强动态文字动画AE模板(标题,字幕,标注,对话)等视频制作元素
  14. 大数据概论 (理论基础)
  15. TypeError: can‘t subtract offset-naive and offset-aware datetimes
  16. 永强教你加解密:对称篇(一)
  17. MMaction2中自定义AVA数据集(在window上实现)
  18. String Reduction
  19. 网页设计师常去的综合类网站总结-卢松松博客
  20. 我们把AI画图玩坏了,这60张图片又惊悚又可爱

热门文章

  1. 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
  2. 戴森创“新”公开课再度开讲,持续助力打造洁净居家环境 以升级科技守护家庭健康
  3. Android优秀软件推荐
  4. 对视频文件批量消音需要借用什么辅助软件
  5. 发布里程计传感器信息
  6. Java 浮点数保留N有效数字
  7. python函数对参数进行大小写互换
  8. 快手42|48位sig3解密-unidbg
  9. 【Linux系列连载】--------远程登录Linux系统(一)
  10. 操作系统<OS>学习习题——第二、三章:进程与处理机