并发和同步

并发与同步概念

并发

并发:在同一时刻,有多个线程同时访问 某一个(一些)资源,带来数据的不安全性 、不稳定性、不确定性。

生活中例子

下课时,多个同学同时抢占同一坑位。

同步

同步:用于解决并发问题,给予线程权限,允许具有权限的线程执行。

实现同步方法-锁

性质:唯一(static)

使用原则:锁越少越好 ,避免死锁发生

实现方法:

1.synchronized

2.Lock Condition

3.synchronized 方法名() {} :锁就是当前对象

生活中例子

坑位有锁,需锁开启。下课时,多个同学抢占同一坑位,仅有一位同学—甲有钥匙(锁即权限),在甲开锁(获取锁)占坑后,锁坑门(同步)。在甲完成如厕动作期间,其他同学仅能在厕所外等待。

执行权限

CPU通过时间片给予线程执行权限及时间,具有权限的线程才能执行。

生活中的例子

在甲同步状态下,所有同学想要进行如厕动作,需要蹲下(执行权限:CPU分配)。任何同学都可以进行蹲下动作,完成蹲下动作需要x秒,期间任何同学可获取蹲下权限(CPU分配时间),仅当甲在坑位完成蹲下动作,开门(释放锁),才算一个同步周期完成。其他同学就算获取蹲下权限,但是不在坑位(不执行代码),不算完成一个同步周期。

解决问题

两查一判断

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

VC&Debug

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值