Java通过Executors提供四种线程池,分别为:

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

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

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

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

1.newCachedThreadPool 这里的线程池是无限大的,当一个线程完成任务之后,这个线程可以接下来完成将要分配的任务,而不是创建一个新的线程。

public static voidmain(String[] args) {

ExecutorService cachedThreadPool=Executors.newCachedThreadPool();for (int i = 0; i < 10; i++) {final int index =i;try{

Thread.sleep(10);

}catch(InterruptedException e) {

e.printStackTrace();

}

cachedThreadPool.execute(newRunnable() {public voidrun() {

System.out.println(index);

}

});

}

}

2.newFixedThreadPool

public static voidmain(String[] args) {

ExecutorService fixedThreadPool= Executors.newFixedThreadPool(3);for (int i = 0; i < 10; i++) {final int index =i;

fixedThreadPool.execute(newRunnable() {public voidrun() {try{

System.out.println(index);

Thread.sleep(10);

}catch(InterruptedException e) {

e.printStackTrace();

}

}

});

}

}

3.newScheduledThreadPoo

public static voidmain(String[] args) {

ScheduledExecutorService scheduledThreadPool= Executors.newScheduledThreadPool(5);for (int i = 0; i < 10; i++) {

scheduledThreadPool.schedule(newRunnable() {public voidrun() {

System.out.println("delay 3 seconds");

}

},3, TimeUnit.SECONDS);

}

}

4.newSingleThreadExecutor 按顺序来执行线程任务   但是不同于单线程,这个线程池只是只能存在一个线程,这个线程死后另外一个线程会补上。

public static voidmain(String[] args) {

ExecutorService singleThreadExecutor=Executors.newSingleThreadExecutor();for (int i = 0; i < 10; i++) {final int index =i;

singleThreadExecutor.execute(newRunnable() {public voidrun() {/*System.out.println(index);*/

try{

System.out.println(index);

Thread.sleep(2000);

}catch(InterruptedException e) {

e.printStackTrace();

}

}

});

}

}

线程池 java 新建方式_Java线程池的四种创建方式相关推荐

  1. Java线程池的四种创建方式

    Java线程池的四种创建方式 Java使用Thread类来表示线程,所有的线程都是Thread类或者是他的子类.Java有四种方式来创建线程. (1)继承Thread类创建线程 (2)实现Runnab ...

  2. 线程池概念、线程池作用、线程池的四种创建方式

    线程池 1.1.什么是线程池? 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程.线程池中线程的数量通常完全取决于可用内存数量和应用程 ...

  3. java的rest教程_[Java教程]SpringMVC的REST风格的四种请求方式

    [Java教程]SpringMVC的REST风格的四种请求方式 0 2017-08-28 22:00:25 一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. ...

  4. python创建单例模式_Python单例模式的四种创建方式实例解析

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...

  5. 各种存储分配算法java代码实现_Java实现操作系统中四种动态内存分配算法:BF+NF+WF+FF...

    1 概述 本文是利用Java实现操作系统中的四种动态内存分配方式 ,分别是:BF NF WF FF 分两部分,第一部分是介绍四种分配方式的概念以及例子,第二部分是代码实现以及讲解. 2 四种分配方式 ...

  6. Java基础14 集合(重要)四种遍历方式 list 并发异常 set

    一.collection 带all的方法 package day14;import java.util.ArrayList; import java.util.Collection;public cl ...

  7. java实现线程的方式_java多线程实现的四种方式

    java多线程实现的四种方式1.继承Thread类,重写run方法(其实Thread类本身也实现了Runnable接口) 2.实现Runnable接口,重写run方法 3.实现Callable接口,重 ...

  8. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  9. java xml 方法_Java读取xml的四种方式

    Java读取xml的四种方式 在平时工作中,难免会遇到把 XML 作为数据存储格式.面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,我对这四种主流方案做一个不完全评测,仅仅针对遍历 XML ...

最新文章

  1. 简单的Writer和Reader
  2. ChipScope Pro分析仪
  3. blender 子弹时间 动画
  4. luogu P3293 [SCOI2016]美味
  5. 源码篇:Python 实战案例----银行系统
  6. 关于C#内存释放的BUG?
  7. 转发和重定向和request域对象
  8. 使自己的注意力集中方法
  9. 2能不用cuda_洗洁精不用花钱买,自己在家2毛钱能做一大瓶,效果比买的还好!...
  10. springboot 手动提交事务_面试官你都工作3年了,也做过5个项目了,怎么连事务机制都不会...
  11. 我一定要让所有人都知道awk这个实用操作
  12. 《数字电子技术基础》3.3 CMOS门电路(上)
  13. python cpk 计算
  14. c语言排考场座位链表,用Excel制作考场座位布置图
  15. mysql属于dbms还是dbs_DB、DBMS和DBS三者之间有什么关系_数据库
  16. SQL Server的密码忘了怎么设置新密码
  17. mac删除自带的 ABC 输入法
  18. 数据分析——逻辑树模式
  19. 5款替代微软Visio的开源免费软件
  20. Flutter桌面开发 - windows插件开发

热门文章

  1. 计算机利用公式计算实发工资怎么弄,2019新个税Excel计算器公式 助你轻松算出工资...
  2. linux 虚拟机不能启动不了系统,虚拟机更改linux初始启动5,出现无法启动现象
  3. 装oracle非常卡吗,win7系统安装完oracle电脑变卡的解决方法
  4. resultset需要关闭吗_液氮不锈钢补给瓶外筒上有一小块结霜能用吗
  5. ps修改dds贴图_「干货」喜爱3D游戏动漫建模的你,必备的次世代游戏贴图技巧...
  6. oracle 主键_Oracle约束详解
  7. Git 这样回退代码,才足够优雅
  8. 有些人一眼就能认出来,你认出来几个?
  9. 干掉MySQL!阿里云MVP专家的分库分表设计,搞得太棒了!
  10. 学计算机的女生是一种怎样的存在?