
java使用多线程模拟,售票,出现 剩余 -1张票的问题(元动力文档)
个人理解:虽然我们在 代码逻辑中加了 COUNT_TICKET > 0的逻辑,但是加锁是 在循环内加的,假设 COUNT_TICKET = 1 时,两个线程都进入了循环,t1 抢到 了锁,将 COUNT_TICKET b变成 0, 释放锁后, t2 还是会 继续卖票,将 COUNT_TICKET 变成 -1。输出看起来没什么问题,最后会 还剩 0张票,这是 总共 10张票时,的结果,会发现它一共卖了 11次,即最后一次卖出后,还剩 -1 张。,),可以这么修改代码。




