首页 > 其他分享 >线程池使用ExecutorService 多线程处理队列任务

线程池使用ExecutorService 多线程处理队列任务

时间:2023-01-12 11:08:47浏览次数:61  
标签:ExecutorService 处理 线程 使用 操作 多线程


最近转到银行工作,在做最核心的财务账务部分,对我来说是一个比较新的东西,工作也已经四年有余,接触一些新的东西,也是不错,每天也累得像狗...

不说了。/捂脸

接下来说一种非常实用的多线程操作模式,此方式能够应对大部分的多线程操作,稍微改一下往里面套就可以满足大部分的业务需求。

基本方式是:

使用ExecutorService 管理多线程,使用Executors创建newFixedThreadPool 线程池。

进行线程内的任务操作,使用CountDownLatch来监控线程处理,等待处理完成完成后退出。

需要注意的是:queue和hashMap 都是Concurrent的。


不说废话,show me the code!

​https://github.com/mingj/ThreadUtils​

标签:ExecutorService,处理,线程,使用,操作,多线程
From: https://blog.51cto.com/u_15939105/6003840

相关文章

  • NET-async-await是否会创建新线程
    title:.NETasync/await是否会创建新线程date:2022-12-0610:36:46tags:-.NET先上结论CPU密集型操作,比如计算,如果不使用Task,ThreadPool、Thread,则不会创建新线程......
  • JUC源码学习笔记5——1.5w字和你一起刨析线程池ThreadPoolExecutor源码,全网最细doge
    源码基于JDK8文章1.5w字,非常硬核系列文章目录和关于我一丶从多鱼外卖开始话说,王多鱼给好友胖子钱让其投资,希望亏得血本无归。胖子开了一个外卖店卖国宴,主打高端,外卖......
  • 多线程中互斥锁与原子性的区别
    一个好的解释,原子操作是不能细分为更小部分的操作。因此,它永远不会半途而废,因此您可以保证它将始终以一致的状态被观察到。例如,现代硬件实现原子比较和交换操作。互斥锁......
  • 2.多线程编程的目标与挑战
    一.串行、并行与并发 串行:单工作者依次执行多个任务(一个任务执行完成再执行下一个任务)。 并行:多工作者同时执行多个任务(每个工作者执行一个任务)。 并发:单工作者交替......
  • C# 中使用主进程及子线程
    1usingSystem;2usingSystem.Threading;3usingSystem.Threading.Tasks;45namespaceThreadTest6{7classProgram8{9static......
  • 强哥说Java--Java多线程
    Java多线程​​前言​​​​总目录​​​​一、基本概念​​​​1.程序​​​​2.进程​​​​3.线程​​​​3.实例理解​​​​4.单核CPU和多核CPU的理解​​​​5.并行和......
  • Java线程诊断
    1.诊断CPU占用过高[root@master~]#nohupjava-jarJvmProject.jar&//有问题的java程序[1]1627[root@master~]#nohup:ignoringinputandappendingoutputto......
  • 高性能IO模型:为什么单线程Redis能那么快?
    你好,我是蒋德钧。今天,我们来探讨一个很多人都很关心的问题:“为什么单线程的Redis能那么快?”首先,我要和你厘清一个事实,我们通常说,Redis是单线程,主要是指Redis的网络IO和键......
  • mysql delete大量数据表锁死,kill的线程后线程处于killed状态问题解决
    一、事件起因删除一张500G的表,没有添加任何约束条件,结果好久都没反应,查询锁之后,使用kill杀掉了进程,再次查询的时候,锁还在,trx_state的状态是ROLLINGBACK,使用showprocessl......
  • 线程池创建及使用--高效
    1、依据系统合理创建线程池/***获取系统处理器个数,作为线程池数量*/intnThreads=Runtime.getRuntime().availableProcessors();ThreadFac......