java多线程之互斥与同步解决方案

前言
  • 最近在看黑马的并发编程笔记,讲得很好,对此进行一下总结
  • 总结的目的不是抄一遍笔记,而是谈谈自己的理解加深记忆
  • 涉及
    • 线程互斥与同步
    • synchronized使用细节及原理
    • Reentrylock使用细节
    • 三种模式思路
线程互斥与同步

互斥:指的是多个线程不能同时访问共享变量
同步:指的是多个线程按指定的顺序执行操作

在同时有多个线程运行过程中,如何达到互斥和同步呢?

  • 加锁即可

在此使用黑马笔记中room例子来说明锁。(ps: 以前就了解锁,但总会记乱,发现使用形象化记忆后就很清楚)

在这里插入图片描述
解决互斥

  • 锁就相当于上图的房子,里面放着会被并发访问的共享变量
  • 此时绿色区域(owner)无线程,此时多个线程想并发访问房子里的共享变量,那么只允许其中一个线程进入房子访问,并把房门锁上。
  • 剩下的没有拿到锁的线程只能在entrylist中排队
  • owner中的线程访问结束后会离开房子,并告诉entrylist的线程可以进房子了
  • entrylist的线
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值