首页 > 其他分享 >线程池

线程池

时间:2023-06-27 23:12:15浏览次数:37  
标签:-- 创建 队列 任务 线程 maxPoolSize

线程池

简介

线程池是一种基于池化思想的线程管理工具。

优点

  • 降低资源消耗
  • 提高响应速度
  • 提高线程的可管理性
  • 提供可扩展性

使用场景

  • 连接池
  • 线程隔离
  • 开发中需要创建5个以上的线程就可以考虑使用线程池

线程池核心参数

参数名 类型 含义
corePoolSize int 核心线程数
maxPoolSize int 最大线程数
keepAliveTime long 保持存活时间
workQueue BlockingQueue 任务存储队列
threadFactory ThreadFactory 线程池创建新线程的线程工厂类
Handler RejectExecutionHandler 线程无法接收任务时的拒绝策略

原理

提交任务处理流程图

flowchart TD A[提交任务] --> B{&lt=corePoolSize} B -->|是| C{任务队列是否已满} B -->|否| B1(创建核心线程并执行任务) C -->|是| D{>maxPoolSize} C -->|否| C1(添加任务到队列) D -->|是| E(按照拒绝策略处理无法执行的任务) D -->|否| D1(创建线程并执行任务)

标签:--,创建,队列,任务,线程,maxPoolSize
From: https://www.cnblogs.com/VergilYang/p/17510144.html

相关文章

  • Java并发(十二)----线程应用之多线程解决烧水泡茶问题
    1、背景统筹方法,是一种安排工作进程的数学方法。它的实用范围极广泛,在企业管理和基本建设中,以及关系复杂的科研项目的组织与管理中,都可以应用。怎样应用呢?主要是把工序安排好。比如,想泡壶茶喝。当时的情况是:开水没有;水壶要洗,茶壶、茶杯要洗;火已生了,茶叶也有了。怎么办?办法甲......
  • java8多线程使用示例
    使用CompletableFuture.allOf实现异步执行同步搜集结果/***@authorwjq*@create2022-03-1216:19*/publicclassTestCompleteFuture{privatestaticfinalintcorePoolSize=10;//核心线程数privatestaticfinalint......
  • Java 线程池的原理与实现
    [分享]Java线程池的原理与实现 这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如NIO),或者称为新技术吧。线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我们会想到数据库连接池,但是线程池......
  • python实现多进程和多线程
    https://blog.csdn.net/weixin_44917390/article/details/119610760创建多进程方法:importmultiprocessingimporttimedefsing():foriinrange(3):print("iamsingooo~")time.sleep(0.5)defdance():foriinrange(3):......
  • c# Thread.Sleep 与 Task.Delay 在多线程中的影响
    一般在函数执行的时候,如果需要让一个任务等待一会儿在执行,大部分都是采用的Thread.Sleep()语句。但如果该函数要复用,同时要给函数一个参数,并让该函数被线程调用后并发执行。当采用如下调用方式的时候,就会出现什么情况呢?就会出现线程阻塞,你会发现只有task1执行,也即只有一个线程......
  • 【多线程笔记】如何优雅关闭线程
    在C#中,可以使用CancellationToken来优雅地关闭线程。CancellationToken是一个结构体,用于向线程发送信号以请求线程停止运行。以下是一个使用CancellationToken的示例代码:usingSystem;usingSystem.Threading;publicclassWorker{privateCancellationTokenSource_canc......
  • ConcurrentHashMap并不是绝对线程安全的
    ConcurrentHashMap是线程安全的概念已经深入人心,让我们在使用的时候有些大意了,我也懒得动脑子,直接使用,结果碰到钉子了. 这个问题让我很郁闷,程序逻辑全是对的,但是问题却明明摆在那边,最后怀疑是HashMap的问题。 1.package2.3.import4.import5.import6.7.impor......
  • java线程监控-jstack+jvisualvm
    Java线程监控一.Jstasck1.查找进程ps-ef|greptomcat-oa2.使用jstack监控jstack2429二、jvisualvm1.tomcat应用环境配置1.1tomcat环境配置修改tomcat中,catalina.sh文件cd/usr/src/tomcat-pinter/binvicatalina.sh在第二行添加如下:JAVA_OPTS="-Dcom.sun.mana......
  • 线程池处理异步任务
    点击查看代码/***异步任务线程池(单例)*用于异步执行任务*/publicclassThreadPoolSingleton{privatestaticfinalAtomicReference<ThreadPoolSingleton>INSTANCE=newAtomicReference<>();privatefinalExecutorServiceexecutor;privateTh......
  • tqt507 pthread 多线程测试 atomic 原子操作
    ////tqt057测试结果find/opt-name*atomic.h*//aarch64-linux-gnu-gccdemoatomic.c-odemoatomic-pthread-I/opt/EmbedSky/TQT507/CoreA/longan/kernel/linux-4.9/tools/include//cp./demoatomic/home/book/nfs_rootfs#include<linux/atomic.h>#inclu......