JDK自带的线程池

devtools/2024/9/22 20:13:27/

1、newFixedThreadPool( 固定大小的线程池 )

线程池的线程数量始终保持恒定,如果有线程由于异常结束,则线程池会补充新的线程。当线程池中的所有线程都处于活动状态时,新提交的任务将会等待,直到有线程空闲。

2、newCachedThreadPool( 可缓存线程池 )

线程池会根据需要创建新线程,并在空闲线程超过60秒未被使用时会被终止回收,以减少系统资源的消耗。这意味着它旨在尽可能地重用线程,但如果线程需求增长迅速,它也可以快速创建新线程。

3、newSingleThreadExecutor( 单线程线程池 )

只有一个工作线程的线程池,所有的任务都会在这个单一的工作线程中按照提交的顺序进行执行,确保了任务的串行执行。

4、newScheduledThreadPool( 定时/周期性执行任务的线程池 )

它扩展了线程池功能,允许延迟或定期执行任务。适合用来执行定时任务或具有固定延时的任务序列。虽然 Executors 提供了便捷的工厂方法创建线程池,但在实际开发中需要注意的是,对于 newFixedThreadPool 和 newSingleThreadExecutor 等这些方法创建的线程池,若线程池中线程数量达到上限且线程都阻塞的情况下,若继续提交任务可能导致拒绝策略触发。同时,直接使用 Executors 创建线程池时,默认配置可能存在一些潜在风险,例如无界队列可能导致OOM等问题,因此推荐在自定义线程池时明确设置相关的参数,如线程数量、队列大小、拒绝策略等。


http://www.ppmy.cn/devtools/7522.html

相关文章

centos的服务器root密码重置的步骤

如果CentOS服务器的root密码被修改了,你需要进行密码恢复操作。以下是在CentOS系统上恢复或重置root密码的步骤: CentOS 7 或 CentOS 8 重启服务器: 重新启动你的服务器。在启动过程中,当GRUB启动菜单出现时,按下e键来…

如何使用PHPStudy+Cloudreve搭建个人云盘并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局&#…

kafka---broker相关配置

一、Broker 相关配置 1、一般配置 broker.id 当前kafka服务的sid(server id),在kafka集群中,该值是唯一的(unique),如果未设置此值,kafka会自动生成一个int值;为了防止自动生成的值与用户设置…

【Linux】静态库和动态库

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:理解静动态库,自己能模拟实现动静态库。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! >…

使用 Flask 和 MongoDB 构建用户注册系统

在本篇技术博客中,我们将学习如何使用 Flask 和 MongoDB 构建一个简单的用户注册系统。我们的目标是创建一个应用程序,允许用户通过表单提交注册信息,并将这些信息存储在 MongoDB 数据库中。 1. 安装必要的库 首先,确保您已经安…

【Go】九、API 编写测试_实现一个用户模块的接口

项目构建 New Project 直接创建项目,只需要起名字,之后在根目录中创建对应的微服务,这里先开发用户微服务模块: mxshop_srvs user_srv global 公共内容 handler 服务 model 数据模型(表结构对应的模型) pr…

vue 监听文本域换行事件在Vue中

可以通过监听input事件来检测文本域内容的变化&#xff0c;包括换行。如果要特别监听换行事件&#xff0c;可以在事件处理函数中判断文本区域内容中的换行符。 <template> <div> <textarea v-model"text" input"abc"></textar…

nginx--Nginx转发真实的IP

Nginx转发真实的IP 前言给nginx.conf 设置proxy_set_headerjava 程序里获取 前言 在使用nginx的时候可能会遇到判断是不是本机在做操作&#xff0c;这样的话web端我们是可以通过ip和端口进行远程连接的这样的话我们就需要从后端获取到真实ip来判断是不是指定的机器了&#xff…