【读书会第十二期】java并发库

举报
kentarou 发表于 2022/05/19 20:35:19 2022/05/19
【摘要】 Java 的线程并发库

一、多线程并发有两个大发库在 java.util.concurrent 包及子包中
1) java.util.concurrent 包 (多线程并发库)
      java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建
        java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。
2) java.util.concurrent.atomic 包 (多线程的原子性操作提供的工具类)
    查看 atomic 包文档页下面的介绍,它可以对多线程的基本数据、数组中的基本数据和对象中的基本数据进行多线程的操作(AtomicInteger、AtomicIntegerArray、AtomicIntegerFieldUpDater…)
 volatile 类型的作用:
      volatile 修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。(具有可见性)
      volatile 没有原子性
3) java.util.concurrent.lock 包 (多线程的锁机制)
  为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。该框架允许更灵活地使用锁和条件。
  本包下有三大接口
  1. Lock 接口:支持那些语义不同(重入、公平等)的锁规则,可以在非阻塞式结构的上下文(包括 handover-hand 和锁重排算法)中使用这些规则。主要的实现是 ReentrantLock。

2.ReadWriteLock 接口:以类似方式定义了一些读取者可以共享而写入者独占的锁。此包只提供了一个实现,即 ReentrantReadWriteLock,因为它适用于大部分的标准用法上下文。但程序员可以创建自己的、适用于非标准要求的实现。
3.Condition 接口:描述了可能会与锁有关联的条件变量。这些变量在用法上与使用 Object.wait 访问的隐式监视器类似,但提供了更强大的功能。需要特别指出的是,单个 Lock 可能与多个 Condition 对象关联。为了避免兼容性问题,Condition 方法的名称与对应的 Object 版本中的不同

二、java.util.concurrent 包下的常用类的使用

在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能
的类。此包下有一些组件,其中包括:
1.执行程序(线程池)
2. 并发队列
3. 同步器
4. 并发 Collocation

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。