synchronized 获取的锁,在方法抛出异常的时候会自动解锁

ReentrantLock 获取的锁,异常的时候也不会自动释放!

调用wait()时,会释放锁。

调用sleep()时,不会释放锁。

Lock接口

api:lock(), unlock()....

AbstractQueuedSynchronizer队列同步器

同步器的设计是基于模板方法模式的,也就是说,使用者需要继承同步器并重写指定的方法,随后将同步器组合在自定义同步组件的实现 中, 并调用同步器提供的模板方法,而这些模板方法将会调用使用者重写的方法。

可重写的方法:

protected boolean tryAcquire(int arg)

protected boolean tryRelease(int arg)

protected int tryAcquireShared(int arg)

protected boolean tryReleaseShared(int arg)

protected boolean isHeldExclusively()

在重写的方法中,需要对同步进行更改时,可以使用同步器提供的三个方法来安全地改变同步状态:

getState()

setState()

compareAndSetState()

重入锁

读写锁

LockSupport

Condition接口

idea中java件带锁标记_java中的锁相关推荐

  1. java购买同一件商品时加锁_java中CAS的ABA问题思考和整理(不看后悔系列)

    前言 听说经常面试被问到~今天同事说了这个问题,就查了一下这问题,觉得挺有意思的,就整理出来跟大家分享下.主要思考下面几个问题: 1.什么是CAS? 2.什么是CAS的ABA问题? 3.怎么解决这个问 ...

  2. java锁分段_Java中锁分类

    锁的分类大致如下: 公平锁/非公平锁 可重入锁/不可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 1.公平锁/非公平锁 公平锁就是严格按照线程启动的顺序来执行的,不允许其他线程插队执行的:而非公平锁 ...

  3. java线程锁标记_java 线程 中断标志位

    课程素材来自 http://enjoy.ke.qq.com/    版权所有 java线程中,线程中断方法详解: 线程自然终止:自然执行完或抛出未处理异常 stop(),resume(),suspen ...

  4. java boolean几个字节_Java中boolean类型到底占用多少个字节?

    1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...

  5. java io 文件路径格式_java中iofile的路径问题,确定一个未知方法所需要的文件路径...

    今天遇到一个极其烦躁的问题,一个jar包中的一个方法,要求函数中要求传入一个String类型的参数,用于指示文件所在的路径.但是对于我们来说完全不知道他需要的路径是绝对路径还是相对路径,所以我尝试了很 ...

  6. java垃圾回收机制标记_Java的垃圾回收机制-垃圾收集算法(一)

    当需要排查各种内存溢出,内存泄漏等问题时,当垃圾收集成为系统达到更高并发的瓶颈时,我们有必要深入GC的原理. image.png 常见垃圾回收算法 在查看垃圾回收具体过程的时候,运行程序加上: -XX ...

  7. java 打印byte数组内容_java中打印byte数组

    JAVA字节转换 字节(Byte)简称:"B",字位(Bit)简称"b", 1 个字位(Bit)=1 个二进制数, 1 个字节=8 个字位=8 个二进制数, 1 ...

  8. java中基本字节输出流类是_java中基本输入输出流的解释

    网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同:向客户传送数据与写入一个文件也没有什么区别. Java中输入 ...

  9. java线程开启不了_Java中多线程启动,为什么调用的是start方法,而不是run方法?...

    前言 大年初二,大家新年快乐,我又开始码字了.写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的ide ...

最新文章

  1. Windows 下各种Python库的下载与安装
  2. Linux 命令之 pstree -- 以树状图显示进程/查看进程信息
  3. 在ne中分析贱谈.net中简体转繁体
  4. ARM中断分析之二:裸机下面的中断处理
  5. Python 数据科学手册 5.2 Scikit-Learn 简介
  6. Bouncy Castle Crypto API c# port
  7. solaris如何启动ssh服务
  8. 在Centos环境下搭建Confluence
  9. 简单的makefile模板
  10. pdf expert使用教程:如何在mac上给PDF怎么调整页面顺序
  11. 计算机知识中h表达什么意思,计算机地基础知识hzh.ppt
  12. Qt —— QWebEngineView加载谷歌离线地图(包含离线地图瓦片下载制作)
  13. 如何写一首悲伤的原创歌曲?
  14. 【图论】 腾讯大战360
  15. 华为 15 到 18 级的研发族社招工作岗位内推
  16. csp-j 2022 比赛心得
  17. Java删除StringBuilder最后一个逗号
  18. 【社区图书馆】《普林斯顿微积分读本》
  19. 2万字系统总结,实现Linux命令自由
  20. 《聊天机器人观后感》

热门文章

  1. 【Numpy金融领域的应用】伽玛分布和贝塔分布随机抽样——以债券违约率与回收率为分析对象
  2. JAVA笔记- JAVA集合类之ArrayList详解
  3. 总是弹出visual studio 实时调试器 三种解决办法
  4. Spring web flow 配置文件
  5. 信号之函数system、sleep、nanosleep以及clock_nanosleep
  6. 怎么将JPEG转成YUV
  7. FZU 2151 OOXX Game
  8. jsplumb分组拖拽
  9. subprocess.Popen 调用缓慢
  10. 颜料墨水和染料墨水的区别