Java线程池

       概述:         线程池,从字面含义来看是管理同一组同构工作线程的资源池。线程池与工作队列是密切相关的, 工作队列保存了所有等待执行的任务, 工作线程从工作队列中获取任务并执行。         通过重用线程而不是创建线程的方式, 这样做的好处是: ①. 可以避免因创建线程和销毁线程所产生的开销;②.当有任务需要执行时不会因为需要创建线程而延迟任务的执行, 从而提高响应性。③. 通过调节线程池大小, 可以使处理器尽量保持忙碌状态, 不仅可以防止创建过多的线程而导致竞争资源过于激烈从而使应用程序耗尽内存。 创建方式:    可以通过Executors来获取需要的线程池:     ①. newFixedThreadPool。它会创建一个固定长度的线程池, 每提交一个任务就会创建一个线程,直到达到最大线程数为止。这时候线程池的规模就不会变化,需要注意的是当某个线程因发生了未预期的Exception而终止,这时候线程池会补充一个新的线程。     ②. newCachedThreadPool。它将创建一个可缓存的线程池,当线程池的规模大于当前需要处理的任务时会进行回收空闲的线程, 当任务增加时会动态增加线程数,  线程池的规模不受限制。     ③. newSingleThreadExecutor。它将创建单个工作的线程执行任务,  如果线程因Exception而终止会创建一个新的线程补充。它能够确保任务在队列中的顺序串行执行。    ④. newScheduledThreadPool。它将创建一个固定长度的线程池, 并且可以通过定时或延迟的方式执行工作任务。 生命周期:     生命周期包含三个阶段: 运行、关闭、停止。在初始创建时处于运行状态, shutdown方法可以平缓的关闭线程池,过程:不再接受新的任务、等待已经提交的任务执行完毕(包含未开始执行的任务)。shutdownNow是一个比较暴力的方式,过程: 尝试关闭正在执行的任务、拒绝队列中尚未开始执行的任务。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT 指南者专栏

今天花时间最多的两个小错误

微信公众号:compassblog 欢迎关注、转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1、配置Maven项目的pom.xml文件报错 (1)、...

29170
来自专栏大闲人柴毛毛

Linux文件的默认权限与查找命令详解

今天被csdn坑了!昨晚写了一夜的博客,保存到线上草稿了!可是今天打开博客,草稿箱里也找不到,发布的文章中也找不到!作为一家专门研讨技术的网站,居然还会在技术上...

458160
来自专栏小明plus

在2018年如何优雅的开发一个typescript语言的npm包?

很多时候,我们可能想要用 typescript 语言来创建一些模块,并提交到 npm 供别人使用,

1.4K110
来自专栏PHP技术大全

Grafana+prometheus+php 自动创建监控图

在grafana+ prometheus+php 监控系统实践文章当中已经实现了我们的第一个监控图表,现在我们有了一个新需求,需要对多个节点实现不同的监控,以及...

40330
来自专栏chenssy

【死磕Sharding-jdbc】---准备工作

sharding-jdbc源码主要有以下几个模块:sharding-jdbc-config-parent、sharding-jdbc-core、sharding...

10810
来自专栏菜鸟程序员

Android 调试桥

20330
来自专栏做全栈攻城狮

零基础学.NET电脑编程-线程 进程 多线程讲解 程序员必备

这是学习电脑编程的第二部分,带领你一起开发电脑桌面应用程序的第三课。上一课链接:Winform零基础入门教程-实现音乐播放器的歌词显示功能

10320
来自专栏L宝宝聊IT

LVS负载均衡群集--NAT+DR模式

16880
来自专栏Golang语言社区

连接池

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。 好处 编辑 这种连接“汇集”起来的技术基于这样的一个事实:对于大多数应用程序...

38460
来自专栏我的博客

php+ftp

$ftp_server = “122.207.221.101”;//主机ip或者域名 $conn_id = ftp_connect($ftp_server) o...

36950

扫码关注云+社区

领取腾讯云代金券