A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
只需一步,快速开始
尘埃落定
中级黑马
黑马币:3
帖子:103
精华:0
© 尘埃落定 中级黑马 / 2014-7-28 09:07 / 1592 人查看 / 11 人回复 / 0 人收藏 转载请遵从CC协议 禁止商业使用本文
吴杰栋 发表于 2014-7-28 10:39 楼主,你把if变成while试试,13行线程睡眠之后,由于if只会判断一次,那么之前进来的线程就不会去判断tick>0了, ...
Wokno 发表于 2014-7-28 09:59 问题出在你13行代码上,当一个线程卖出最后一张票后,其它三个处于睡眠状态的线程重新获取cpu执行权时,就 ...
尘埃落定 发表于 2014-7-28 10:57 Yes,你说的这种情况应该是没有加同步的状况,现第九行有加同步代码块,应该就能解决这个问题。 我现在的 ...
Wokno 发表于 2014-7-28 13:27 加入了同步代码块也是一样,因为每次线程sleep时,它会释放其持有的锁,其它线程就可以拿到锁。你把System ...
尘埃落定 发表于 2014-7-28 13:47 sleep的时候,其他线程应该拿不到锁的吧?我对同步的理解是:只要其中的一个线程进到同步中,如果没有出 ...
咸菜+萝卜干 发表于 2014-7-28 19:22 首先多个线程同步要有同一个锁,你的代码里,每一个线程的锁都是独立的,也就是说你锁了等于没锁,我帮你改 ...
尘埃落定 发表于 2014-7-28 21:37 o,因为new了两个对象,所以是两把锁。
咸菜+萝卜干 发表于 2014-7-28 22:41 现在知道了?