并发和同步

并发与同步概念

并发

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

生活中例子

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

同步

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

实现同步方法-锁

性质:唯一(static)

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

实现方法:

1.synchronized

2.Lock Condition

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

生活中例子

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

执行权限

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

生活中的例子

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

解决问题

两查一判断

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值