万码退散 2022-04-01 01:02 采纳率: 100%
浏览 50
已结题

Java中关于多线程的疑惑求解

img

img

img

img

刚接触多线程内容,想求解一下两段程序为什么会有不同的结果。
希望能较详细的解答,感谢!

  • 写回答

1条回答 默认 最新

  • 在自我救赎中成长 2022-04-01 09:00
    关注

    区别在于上面代码是,先判断再上锁同步。下面代码先同步上锁,在判断执不执行。
    1.这就会出现,上面代码可能会出现A,B二个线程同时通过判断,但A线程先获取到锁进行执行。这个时候B线程就只能在这个地方等待。等A执行完了tickers-- = 0 后。B线程在去获取锁进行执行代码块。又执行了一次 tickers-- 。

    1. 先同步上锁再判断tickers > 0 才会去执行那块代码。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 创建了问题 4月1日

悬赏问题

  • ¥15 有人能看一下我宿舍管理系统的报修功能该怎么改啊?链表那里总是越界
  • ¥15 cs loadimage运行不了,easyx也下了,没有用
  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析