当前位置: 首页 > java >正文

多线程使用——线程池

一、认识线程池

一个可以复用线程的技术

(一)不适用线程池的问题

用户每发起一个请求,后台就要创建一个新线程来处理,下次新任务来了肯定又要创建新线程处理的,而创建新线程的开销是很大的,并且请求过多时,肯定会产生大量的线程出来,这样会严重影响系统的性能。

(二)使用线程池的原理

优先处理,排队等待,能控制线程的数量,也能控制任务的数量。分为:

工作线程WorkThread和任务队列WorkQueue

二、创建线程池

JDK5.0起提供了代表线程池的接口:ExecutorService

(一)创建方式

 

三、线程池处理Runnable任务

四、线程池处理Callable任务

五、Executors工具类实现线程池

计算密集型的任务:核心线程数量=CPU的核数+1

IO密集型的任务:核心线程数量=CPU核数*2

六、线程池的其他细节

(一)并发、并行

(二)线程的生命周期

http://www.xdnf.cn/news/973.html

相关文章:

  • 基于opencv和PaddleOCR识别身份证信息
  • RIP动态路由,实现两台PC互通三个路由器,两台电脑
  • 成功案例|TRAP1 与 CAMSAP3:早期子宫内膜癌预后的新 “风向标”
  • Federated Feature Augmentation and Alignment
  • Linux卸载删除gitlab
  • Vmware esxi 给现有磁盘增加空间后并扩展系统里磁盘空间
  • 文件内容课堂总结
  • Webpack 插件开发
  • MYDB仿MySQL手写数据库项目总结
  • UML 状态图:解锁电子图书馆管理系统的高效设计
  • 经典文献阅读之--KISS-Matcher(快速且稳健的点云注册)
  • C语言中联合体(Union)和结构体(Struct)的嵌套用法
  • VS Code + GitHub:高效开发工作流指南
  • 前端vue监听 -watch
  • 基于Redis实现高并发抢券系统的数据同步方案详解
  • Redis 有序集合(Sorted Set)
  • Spark,序列化反序列化
  • Linux高级IO
  • 【Python爬虫实战篇】--爬取豆瓣电影信息(静态网页)
  • RS232 串行通信:C++ 实现指南
  • 微信小程序 == 倒计时验证码组件 (countdown-verify)
  • 5V 1A充电标准的由来与技术演进——从USB诞生到智能手机时代的电力革命
  • I/O复用函数的使用——select
  • Linux系统管理与编程13:基于CentOS7.x的LAMP环境部署
  • BGP路由控制实验
  • Linux论坛安装
  • vite安装及使用
  • arkTs:UIAbility 组件的生命周期
  • Linux——系统安全及应用
  • 内网穿透实践:cpolar快速入门教程