java多线程问题?

java程序猿进来回答!!两个线程都启动了,但是只有第一个线程才能得到锁,第二个线程直到变量为0的时候才得到锁,中间一直都处于锁外等待???为什么会这样?代码有问题吗?麻... java程序猿进来回答!!
两个线程都启动了,但是只有第一个线程才能得到锁,第二个线程直到变量为0的时候才得到锁,中间一直都处于锁外等待???为什么会这样?代码有问题吗?麻烦看下给高分。。。
展开
 我来答
涤根钰出到1k
2019-12-04 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:147
采纳率:71%
帮助的人:73.8万
展开全部
多线程最基础的问题。 比较容易错
你先执行了锁 ,然后执行while 判断 也就是说你锁住之后一直在while 的判断。while不结束 你的锁不解除 ,所以只执行了 Thread1。
正确的方式是先执行while 判断 然后锁住 售完票 再判断,这样Thread2 才有机会啊。
你要锁住的只有卖票这个函数,而不是while这个判断
Reets
2019-12-04
知道答主
回答量:29
采纳率:11%
帮助的人:4.1万
展开全部
你第一个线程不结束,就一直持有"lock"这个锁,第二个线程还抢个屁啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落叶御风
2019-12-24 · TA获得超过592个赞
知道小有建树答主
回答量:1037
采纳率:86%
帮助的人:242万
展开全部
静态方法是类锁。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式