【Java多线程】了解线程的锁池和等待池概念

一.内置锁

Java提供了一种内置的锁机制来支持原子性可见性同步代码块(Synchronized Block)

synchronized的原理有两个:

  • 内置锁
  • 互斥锁

Java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁称为内置锁(Intrinsic Lock)或者监视器锁(Monitor Lock)。线程进入同步代码块或方法的时候会自动获得该锁,并且在退出同步代码块时(正常返回,或者是异常退出)会自动释放锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。

  • 而Java的内置锁又是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程B尝试去获得线程A持有的内置锁时,线程B必须 等待(WAITING)或者阻塞(BLOCKED),直到线程A释放这个锁,如果A线程不释放这个锁,那么B线程将永远等待下去。

同步代码块以关键字synchronized修饰,例如:

synchronized(锁对象引用&
  • 13
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墩墩分墩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值