线程池

线程池的作用

核心点:复用机制提前创建好固定的线程一直在运行状态实现复用限制线程创建数量。

1.降低资源消耗:通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。

2.提高响应速度:任务到达时,无需等待线程创建即可立即执行。
3.提高线程的可管理性:线程是稀缺资源,如果无限制创建,个仅会泪R系沉贡源,贮云公为线程的不合理分布导致资源调度失衡,降低系统的稳定性。使用线程池可以进行统一的分
配、调优和监控。
4.提供更多更强大的功能:线程池具备可拓展性,允许开发人员向其中增加更多的功能。比如延时定时线程池ScheduledThreadPoolExecutor,就允许任务延期执行或定期执行。

线程池创建方式

Executors.newCachedThreadPool();可缓存线程池

Executors.newFixedThreadPool();可定长度

Executors.newScheduledThreadPool() ;可定时

Executors.newSingleThreadExecutor();单例

这4种方式底层是用无界缓存我们的队列的,可能会发生线程池溢出

public class Test005 {public static void main(String[] args) {//
//        ExecutorService executorService = Executors.newCachedThreadPool();ExecutorService executorService = Executors.newFixedThreadPool(2);for (int i = 0; i < 10; i++) {final int finalI = i;executorService.execute(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName() + "," + finalI);}});}}
}

Java线程池有哪些作用相关推荐

  1. java线程池有什么作用_java线程池的作用是什么?线程池介绍

    你知道java中线程池的作用是什么吗?那么究竟什么是线程池呢?都有哪些类型呢?让我们对以上的问题来进行详细的了解吧. 一.java线程池作用 第一个我们先来对它的作用进行一下简单的介绍,使用线程池的优 ...

  2. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

  3. java线程池的使用例子,不愧是大佬

    京东Java研发岗一面(基础面,约1小时) 自我介绍,主要讲讲做了什么和擅长什么 springmvc和spring-boot区别 @Autowired的实现原理 Bean的默认作用范围是什么?其他的作 ...

  4. 面试题:四种Java线程池用法解析 !=!=未看

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 1 2 3 4 5 6 7 8 new Thread(new Runnable() {   @Override   ...

  5. java 线程池ThreadPoolExecutor

    线程池 线程池的作用: 线程池作用就是限制系统中执行线程的数量. 根 据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果:少了浪费了系统资源,多了造成系统拥挤效率不高.用线程池控制线程数 ...

  6. 由浅入深理解Java线程池及线程池的如何使用

    前言 多线程的异步执行方式,虽然能够最大限度发挥多核计算机的计算能力,但是如果不加控制,反而会对系统造成负担.线程本身也要占用内存空间,大量的线程会占用内存资源并且可能会导致Out of Memory ...

  7. JAVA线程池原理以及几种线程池类型介绍

    在什么情况下使用线程池? 1.单个任务处理的时间比较短      2.将需处理的任务的数量大 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销      2.如不使用线程池, ...

  8. Java 线程池艺术探索

    线程池 Wiki 上是这样解释的:Thread Pool 作用:利用线程池可以大大减少在创建和销毁线程上所花的时间以及系统资源的开销! 下面主要讲下线程池中最重要的一个类 ThreadPoolExec ...

  9. Java线程池Executor框架

    一.为什么要引入线程池 当存在大量并发任务时,创建.销毁线程需要很大的开销,运用线程池可以大大减小开销. 二.Executor框架 说明: Executor 执行器接口,该接口定义执行Runnable ...

最新文章

  1. 使用Identity Server 4建立Authorization Server (2)
  2. ‘Series‘ object has no attribute ‘sort‘
  3. 关于 移动端 页面跳转的方赞
  4. android第三方应用,Android 第三方应用接入微信平台研究情况分享(一)
  5. c语言编写pdf,编写并运行C语言程序.pdf
  6. OpenTSDB使用Grafana的Filters type注解
  7. 500 cannot be cast to javax.xml.registry.infomodel
  8. Linux学习总结(33)——Linux Java启动关闭bash脚本
  9. python使用opencv保存视频_Pythone OpenCV学习笔记之:视频文件读取与保存
  10. 【剑指offer】连续子数组的最大和(未完待续。。。)
  11. Oracle临时库数据数据量过大,Oracle临时表空间过大问题解决
  12. linux内存映射起始地址,内存初始化代码分析(三):创建系统内存地址映射
  13. Atitit 自然语言处理(NLP)的应用 与 搜索引擎 目录 1.1. 搜索引擎并不是自然语言处理(NLP)的唯一应用。 2 1.2. NLP的应用 2 1.3. 社交网站信息流, 2 1.4.
  14. 批量生成hive建表语句
  15. 生活四大勤,让老人延年益寿
  16. html鼠标元素效果,十五种css3鼠标hover效果
  17. 人民银行新闻发布会:详细解读2020年上半年金融统计数据
  18. Elang 学习笔记(二)
  19. 【Redis】Info Stats - 监控使用情况
  20. Phython基础语法知识点汇集

热门文章

  1. 别让6种不良心理偷走你的好人缘
  2. 利用 git 提交代码、git 简单使用(拉取、推送、分支、合并)
  3. IntelliJ IDEA中新建JAVA WEB项目、maven项目
  4. ZooKeeper学习-- Zookeeper简单介绍
  5. vue中的slot插槽
  6. 00030_ArrayList集合
  7. spring用的很开心的标签(随时增加)
  8. GIT的PUSH指令
  9. Android学习笔记——Handler(二)
  10. Sharepoint学习笔记—ECM系列--根据位置设置的默认元数据值(Location-Based Metadata Defaults)...