[Java进阶] 线程池详解

news2024/12/23 0:51:27

文章目录

  • 前言
  • 1. 线程池的作用
  • 2. 线程池的应用
  • 3. 标准库中创建线程池的方式


前言

本文介绍线程池的作用和实现方法.


1. 线程池的作用

1.我们知道,线程的作用是由于进程的创建和销毁需要分配和回收资源,开销较大.而线程是"轻量级进程",创建销毁更高效.
2.线程池,比线程更加高效.使用线程池,需要事先把线程创建好放到线程池中,要用线程的时候,直接在线程池里取.
3.线程的创建.由操作系统内核执行,而在线程池中,获取和归还线程只需用户代码即可实现.

2. 线程池的应用

1.创建有10个线程的线程池.

ExecutorService pool = ExecutorsnewFixedThreadPool(10);

我们发现上面的代码中没有用到构造方法去创建线程池.
这种设计模式为工厂模式,使用普通方法代替构造方法创建对象.
这种模式有什么作用呢?
我们知道,方法重载,方法的返回值类型或参数类型列表必须要求不同.但在某些情况下,两个构造方法,他们的返回值类型和参数列表完全相同,那么使用普通的构造方法无法进行区分,这里就需要用静态方法代替构造方法,然后通过静态方法名字的不同进行区分.
2.给线程池中的线程分配任务
如下代码,通过submit()方法给线程池提交任务,之后,线程池中的线程同时启动,领取任务,执行完一个任务后,再去领取下一个任务.

			pool.submit(new Runnable() {
                @Override
                public void run() {
                    System.out.println("线程任务");
                }
            });

3. 标准库中创建线程池的方式

Java标准库中提供的几种创建线程池方式如下.
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车发动机点火性能测试仪设计

汽车发动机的点火系统包括上百种电气和机械零部件,生产线分布较广,因此分布式间接监控方式在点火系统的监测与故障诊断系统中得到广泛应用。发动机点火性能测试仪通过测量发动机的闭合角与分火角,对其分电器和点火器性能进行分析。 闭合角、分…

Python接口自动化测试实战系列

本节内容 接口及接口测试 网络基础知识:IP,域名, DNS及端口 网络基础知识:OSI七层模型及TCP协议 HTTP协议 接口及接口测试 这里插播一个段子 上图中,程序员口中提到的接口是什么意思呢? 手机壳有没有颜色这个属性&#xff0…

安全渗透工程师入门最快需要多久?提供具体路线和学习框架

前言 网络渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。最快达到入门也要半年 理清网络渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。 网络安全好混,但不容易混得好。…

【顶配快速排序】CUTOFF配合三点中值法的三路划分

目录 1引入情境2 形式化描述2-1递归结构2-2 一次划分2-3 C实现 3 在工程中的改进3-1 处理重复元素双向划分三路划分C 实现 3-2 最差情况的改进三点中值法随机选择pivot短序列切回插入排序 4 全部改进技术加持 1引入情境 从低到高排成一队,怎么办? 以大雄…

RIME协议栈解读

// 新坑–contiki rime简介 rime类似于TCP/IP协议栈,属于分层结构。图片来自Adam Dunkels本人的rime论文介绍。 abc为anonymous broadcast,匿名广播。即将数据包通过无线射频驱动(radio driver)发出去,接收来自无线射频驱动所有的包并交给…

四月成功上岸阿里,年后准备了两个月,要个21k应该不过分吧~

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,阿里的游戏专场又是最早开始的,就投递了&#xf…

[JAVA数据结构]希尔排序/缩小增量法

前置内容:[JAVA]直接插入排序_HY_PIGIE的博客-CSDN博客 希尔排序,是将一个数组分成多组,在每一个组内进行排序。每进行一次排序,组中的元素都会增多,组数减少。 在组内进行直接插入排序 组数以/2的形式减少 例入&#…

离散Markov Chain序列及可视化

离散Markov Chain序列及可视化 文章目录 离散Markov Chain序列及可视化[toc]1 天气预测2 赌徒问题 1 天气预测 假设仅存在三种天气:晴天、阴天和雨天,每种天气状态构成的系统满足(齐次)马氏链过程,即下一期的天气状态仅取决于当前的天气状态…

网络安全是什么?如何成为一位优秀的网络安全工程师?

网络安全是什么? 首先说一下什么是网络安全? 网络安全工程师工作内容具体有哪些? 网络安全是确保网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而受到破坏、更改、泄露,系统连续可靠正常地…

idea部署tomcat(偏小白向)

目录 一、环境部署 1.安装idea ultimate任意版本 2.java稳定的版本如: 3.apache-tomcat任意版本,需要考虑兼容性,大家可以百度一下 二、部署简单的javaweb环境 总结 1.第一个问题 2.第二个问题 一、环境部署 1.安装idea ultimate任意版本…

Debian 11安装mysql 5.7.41

Debian 11安装mysql 5.7.41 1、下载mysql安装包2、安装文档2.1、安装依赖包2.2、安装MySQL包2.2.1、预设值数据库参数2.2.2、安装MySQL包 2.3、文件安装位置 3、使用mysql 5.7.41 数据库3.1、命令行登录MySQL 5.7.41 数据库3.2、navicat连接mysql 5.7.41 数据库3.2.1、修改mysq…

UWB技术开发的定位系统源码,高精度人员定位系统源码,室内定位系统源码人员定位/车辆定位/物品定位/材料定位

UWB技术定位系统源码,高精度人员定位系统源码,智慧工厂人员定位系统源码,室内定位系统源码 技术架构:单体服务 硬件(UWB定位基站、卡牌) 开发语言:java 开发工具:idea 、VS Code…

操作系统:12 线程竞争与线程池

1 基本概念 ① 竞争与同步 同一个进程中的线程能够共享进程中的绝大多数资源,当他们随意竞争时可能会导致共享资源被破坏、脏数据、不完整、不一致等问题 通过一些方法让进程中的线程在竞争资源时相互协调,避免出现以上问题,这种手段就称为线…

5月11日作业

思维导图 作业: 作业1: 作业2: 作业3: 作业4: 作业5:

算法设计与分析:枚举和递推的运用

目录 第1关:双关系递推数列 任务描述 相关知识 枚举算法的两种框架 递推算法的实施步骤 问题求解思路 编程要求 测试说明 第1关:双关系递推数列 任务描述 本关任务:运用枚举和递推的基本思想,通过编程计算出双关系递推数…

grafana + influxdb + telegraf构建linux性能监控平台

为了更好的做性能测试过程中监控服务器资源,提供可视化效果,下面介绍一种监控方案: grafana influxdb telegraf , 构建linux性能监控平台 安装3个软件 1.Grafana安装 grafana , 访问各类数据源 , 自定义报表、显示图表等等 , 用于提供界…

微星 B360M MORTAR电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板微星 B360M MORTAR 处理器英特尔 Core i5-9400 2.90GHz 六核已驱动 内存8 GB ( 金士顿 DDR4 2666MHz 8GB )已驱动 硬盘西数 WDS250G3X0C-00SJG0…

mysql高级语句(2)

and or 最左原则 create view视图表:虚拟表或存储查询 没有表结构存储查询语句的结果表 临时表在用户退出或同数据库连接断开就会小时,而视图表不会(就像定义个全局变量)保存的是定义 格式:create view “视图表名…

内测开始了!0penAI GGPT 图片功能、联网功能、音频功能、多模型功能、微调功能

联合两位大佬一起对gpt官方的接口做了整合。 有感兴趣的可以一起开发交流,下文有部分代码讲解。感兴趣的可以加入一起测试玩耍(文末有加入方式)~ 模型介绍 内测内容包括文字生成图片、图片生成图片、联网模式、模型定制、多角色设定等。 1…

mongodb用户权限配置

1.副本集 1.1在主节点创建管理员账号 /etc/mongodb/mongosh-1.8.1-linux-x64/bin/mongosh --port 27017 use admin db.createUser({user:"用户名",pwd:"密码",roles:["root"]}) 只要在主节点创建用户即可,从节点会自动同步数据 …