
线程池和异步处理
文章平均质量分 67
主要介绍线程以及线程池相关
信仰_273993243
热爱技术热爱生活,希望大家共同进步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hikari源码分析
连接池关系1、HikariDataSource构建函数->生成HikariPool对象->调用HikariPool的getConection得到连接2、HikariPool包含ConcurrentBag3、ConcurrentBag保存连接:三个集合threadList、sharedList、handoffQueue4、ConcurrentBag管理连接:创建连接的线程池,探活的线程池,关闭连接的线程池、阻塞队列5、探活的线程池:调用关闭连接的线程池,调用创建链接的线程池。原创 2023-10-31 13:33:32 · 1039 阅读 · 0 评论 -
ForkJoin介绍
ForkJoinPool线程池最大的特点就是分叉(fork)合并(join),将一个大任务拆分成多个小任务,并行执行,再结合工作窃取模式(worksteal)提高整体的执行效率,充分利用CPU资源。一、应用场景ForkJoinPool使用分治算法,用相对少的线程处理大量的任务,将一个大任务一拆为二,以此类推,每个子任务再拆分一半,直到达到最细颗粒度为止,即设置的阈值停止拆分,然后从最底层的任务开始计算,往上一层一层合并结果,简单的流程如下图:比如我们在APP首页需要加载很多个板块,那么对于这种我们就可以使原创 2022-06-05 21:05:25 · 130 阅读 · 0 评论 -
使用@Async开启异步线程
使用案例:Async案例源码分析:Async源码分析原创 2022-01-09 22:01:14 · 353 阅读 · 0 评论 -
ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal
多线程访问同一个共享变量的时候容易出现并发问题,ThreadLocal是除了加锁这种同步方式之外的一种保证规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。在实际多线程操作的时候,操作的是自己本地内存中的变量,从而规避了线程安全问题。使用ThreadLocal的最终目的还是为了得到安全的数据,下面分析下ThreadLocal的结构一、在提到ThreadLocal前我们先看下Thread类以及属性class T原创 2021-11-06 13:00:39 · 3469 阅读 · 1 评论 -
线程池之Executor
什么是Executor框架?二、Executor框架结构图解1、Executor框架包括3大部分:2、Executor框架的使用示意图:3、使用介绍三、Executor框架成员什么是Executor框架?我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接口。Executor框架实现的就是线.转载 2021-11-07 22:14:38 · 183 阅读 · 0 评论