记录Java Synchronized关键字踩坑与实现原理解析

记录Java Synchronized关键字踩坑与实现原理解析

参考:

https://blog.csdn.net/luoweifu/article/details/46613015

https://blog.csdn.net/linmiansheng/article/details/80518130

首先介绍必须的背景知识:Lab6的v1实验实现了多线程的猴子过河模拟器,猴子们多线程的选择梯子时需要根据随机策略来选择梯子,两种策略如下:

空梯子优先策略:如果有空梯子就直接上去,否则随机选取一个行进方向与自身相同且梯子上第一个踏板是空着的的梯子的梯子上去;

最速梯子优先策略:考察梯子的整体推进速度,选择最推进速度的梯子上去。

刚开始实现空梯子优先策略的时候有如下两种实现方式:

  1. 猴子遍历的查看每个梯子,查看哪个梯子就锁住当前的梯子,如果是空梯可以直接上去,否则查看该梯子是否符合自身要求,如果符合就将该梯子加入待选列表,如果遍历完所有的梯子都未能找到空梯子,就在待选列表里随机选择一个梯子上去(此时选的时候仍需要锁住随机的这个梯子,而且需要再次查看这个梯子是否符合要求,可能会由于interleaving而导致该梯子被其他猴子捷足先登就需要将其删除并且
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值