首页 > 其他分享 >020_Lock和Condition

020_Lock和Condition

时间:2022-11-15 21:15:35浏览次数:41  
标签:info Synchronized 生产者 Lock 线程 020 Condition

目录

传统synchronized

未用同步方法时

image.png
image.png
image.png
image.png

使用同步方法时

image.png
image.png

Lock接口

:::info
ReentrantLock 可重入锁(常用)
ReentrantReadWriteLock.ReadLock 读锁
ReentrantReadWriteLock.WriteLock 写锁
:::
image.png
image.png
:::info
lock() 加锁
unlock() 解锁
:::
image.png
:::info
NonfairSync 非公平锁:十分不公平,可以插队
FairSync 公平锁:十分公平,先来先执行(默认)
:::

应用测试

image.png
image.png
image.png

Synchronized和Lock的区别

image.png

Synchronized版-生产者和消费者问题

image.png
image.png
image.png
image.png

Lock版-生产者和消费者问题

image.png
image.png
image.png
image.png
image.png
image.png

Condition 精准的通知和唤醒线程

:::info
condition.await(); // 等待
condition.signal(); // 唤醒指定线程
:::
image.png
image.png
image.png
image.png
image.png

标签:info,Synchronized,生产者,Lock,线程,020,Condition
From: https://www.cnblogs.com/wl3pb/p/16893918.html

相关文章

  • 080_阻塞队列 BlockingQueue
    目录简介演示代码抛出异常add()添加元素队列已满时抛出异常remove()移除元素为空时抛出异常有返回值,不抛出异常offer()添加元素队列已满时返回false不抛异常poll()移除......
  • 070_读写锁 ReadWriteLock
    目录简介演示代码不加锁演示读写锁演示简介:::info读可以被多线程同时读,写的时候只能有一个线程去写读-读,可以共存读-写,不能共存写-写,不能共存读锁是共享锁,多个线程可......
  • 20201306吴龙灿第十四章学习笔记
    知识点归纳第十四章MySQL数据库系统数据库什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进......
  • Interlocked 用法
    一.多线程的线程安全多线程安全问题原因是在cpu执行多线程时,在执行的过程中可能随时切换到其他的线程上执行,为多个线程同时操作同一个变量使用二.Interlocked的特点Interl......
  • SAP ABAP FICO FAGLL03H CODING BLOCK新增自定义字段
    1、SGLPOS_N_GL_CT、SGLPOS_N_CT两个结构新增自定义字段  2、执行t-code:HDBVIEWS  3、实施增强 FAGL_LIB  4、使用selectdata方法 5、代码示例:......
  • Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
     1、出现问题的原因:我前面没在VisualStudio建立C++工程时,直接用命名行编译C运行时是不会有这个问题,后面我就直接用C++建立工程时运行就报这个错误了。2、原因分析:该错......
  • Java 同步锁ReentrantLock与抽象同步队列AQS
    AbstractQueuedSynchronizer抽象同步队列,它是个模板类提供了许多以锁相关的操作,常说的AQS指的就是它。AQS继承了AbstractOwnableSynchronizer类,AOS用于保存线程对象,保存什......
  • set_clock_groups -async -group {CLK1CLK3}{CLK2}
    本期求职笔试题目来源大疆硬件逻辑岗,共2道题,涉及知识点包含:时序约束中异步时钟的设置、典型时序优化方法。33、根据约束关系set_clock_groups-async-group{CLK1CLK3}{C......
  • set_false_path和set_clock_groups有什么区别? - 知乎
    时钟之间的关系在静态时序分析(STA)中起着至关重要的作用。由于1)时钟数量增多2)不同的时钟产生电路3)时钟域交互之间的交互当前ASIC设计具有高度复杂的时钟方案。高效率的......
  • 第五章第1节: 2020.05.23 智能互联网之弹性容器云与Service Mesh【一】
                                     ......