当前位置: 首页 > news >正文

【学习笔记】Java并发编程的艺术——第8章 Java中的并发工具类

第8章 Java中的并发工具类

8.1 等待多线程完成的CountDownlatch

允许一个活多个线程等待其他线程完成操作
调用countDown()减1,减至0时await放行

8.2 同步屏障Cyclic Barrier

8.2.1 CyclicBarrier简介

初始化有一个int参数,代表有n个线程阻塞在当前同步屏障上时,会全部放行

8.2.2 CyclicBarrier的应用

比如几个线程计算结果,最后汇总

8.2.3 CyclicBarrier和CountDownLatch区别

CyclicBarrier可以调用reset()重置阻塞线程计数器,而CountDownLatch只能使用一次,CyclicBarrier可获得当前阻塞线程数[getNumberWaiting()],CyclicBarrier适合更复杂的场景,且可以指定阻塞结束时立刻运行一个线程

8.3 控制并发线程数的Semaphore

用于控制同一时间的并发线程数量,使其限制在n及以下。
适用于限制线程获取连接池中的连接等场景
有获取当前许可数,正在阻塞线程数,是否有阻塞等方法

8.4 线程间交换数据的Exchanger

用于两个线程的信息交换,若一个来执行exchge(),则会一直等待,可设置超时时间。

http://www.dtcms.com/a/333466.html

相关文章:

  • Python工具箱系列(六十二)
  • 写作在学习中的重要性
  • 【完整源码+数据集+部署教程】脑部健康状态检测系统源码和数据集:改进yolo11-AIFI
  • 力扣top100(day04-05)--堆
  • **标题:发散创新之力,探索隐私计算的未来**隐私计算,作为当下数字化时代的热门话题,正受
  • MCP简单入门及简单操作案例(高德地图调用实现酒店查询天气查询等[Lima]示范)
  • 在执行部署脚本后,通过 ls -la 命令查看远程服务器文件时,显示的文件所有者是 games 而不是预期的 root 用户
  • 二、DOCKER常用命令
  • 最长递增子序列-dp问题+二分优化
  • Vue 侦听器(watch 与 watchEffect)全解析1
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • pcl法线估计的踩坑
  • 【GPT入门】第47课 大模型量化中 float32/float16/uint8/int4 的区别解析:从位数到应用场景
  • 《P1194 买礼物》
  • PyTorch的安装-CPU版本或者GPU安装有什么区别吗
  • 口播数字人免费API调用方案
  • Docker的相关知识探究详解
  • 【功能更新】“弹性互联网”正式上线Fusion WAN平台
  • Oracle按照特定列值排序和C#统计特定列值的所有行
  • 数据结构:N叉树 (N-ary Tree)
  • 【部署K8S集群】 1、安装前环境准备配置
  • Deepoc具身智能模型如何重塑康复辅助设备
  • Java中MybatisPlus使用多线程多数据源失效
  • 集成电路学习:什么是Image Segmentation图像分割
  • 功能组和功能组状态的概念关系和区别
  • java16学习笔记-Vector API
  • oracle数据库初始化
  • 共探头部设计|安贝斯携手武汉科创协会x深钣协“湖北行”,链动D+M小镇的华中范式
  • Linux软件编程-进程(2)及线程(1)
  • 快速设计简易嵌入式操作系统(5):贴近实际场景,访问多外设,进一步完善程序