并发同步工具类
2023-07-03 12:01:04 1 举报
AI智能生成
并发工具类
作者其他创作
大纲/内容
ReentranrLock(可重入的独占锁)
ReentrantLock是一种可重入的独占锁,他允许同一个线程多次获取同一个锁而不会阻塞
应用场景
抢票场景,电影院抢座,游戏中抢装备
解决多线程竞争资源的问题,比如多个线程同时对数据库进行写操作,可以使用ReentrantLock保证每次只有一个线程写入成功
实现多线程任务的顺序执行
实现多线程等待、通知机制,在一个线程完成任务后通知其他线程开始执行,利用condition的await()和signal(),类似synchronized的wait和notify
CountDownLatch(闭锁)
允许一个线程或者多个线程等待,直到其他线程完成操作表
应用场景
首页数据统计汇总
并行任务同步:可以用于多个并行任务的完成情况,确保所有任务都完成后再继续执行下一步操作
多任务汇总:可以用于统计多个线程的完成情况,已确定所有的线程完成工作
资源初始化:可以用于等待资源的初始化完成,以便在资源初始化完成后开始使用
Exchanger(数据交换器)
用于线程之间协作的工具类,用于两个线程之间交换工具
应用场景
交易场景(一手交钱,一手交货),对账场景
数据交换
数据采集
Semaphore(信号量)
用于控制同时访问某个资源的线程数量
应用场景
限流:可以用于限制对共享资源的并发访问数量,以控制系统的流量
资源池:可以用于实现资源池,以维护一组有限的资源
CyclicBarrier(循环屏障)
实现让一组线程等待至某一个状态(屏障点)之后在全部同时执行,而且可以被重复使用
应用场景
人满发车,数据批量处理
多线程任务:可以用户将复杂的任务分给多个线程执行,并在所有线程完成工作后触发后续操作
数据处理:可以用于协调多个线程间的数据处理,在所有线程处理完数据后触发后续操作
Phaser(阶段协同器)
循环屏障和闭锁的进化版本,管理多个阶段的执行,可以灵活的控制线程的执行顺序和阶段性的执行
应用场景
批量数据处理
多线程任务分配
多级任务流程
模拟并行计算
阶段性任务
0 条评论
下一页