永发信息网

java线程同步的问题,究竟线程在什么时候释放锁

答案:3  悬赏:80  手机版
解决时间 2021-11-29 06:34
  • 提问者网友:戎马万世
  • 2021-11-28 21:16
java线程同步的问题,究竟线程在什么时候释放锁
最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-11-28 21:30
可以肯定的说,执行完同步代码块 立即释放 而与run方法没有关系
你这个结果应该是随机的
f()执行完释放this锁,被哪个线程拿到是随机的
全部回答
  • 1楼网友:人间朝暮
  • 2021-11-28 22:18
这样说吧,这个跟你的cpu也有关系的,一个线程并不是一直占用cpu的,假如一个线程需要执行5毫秒,排除其他线程的影响,那么现在有线程A和线程B两个线程,执行顺序可能是,A执行了2毫秒,B再执行2毫秒,A再两毫秒,接着B再执行,轮流执行,直到两个线程结束。这样出现上面的问题就不奇怪了,至于你说的同步锁,只是加在了方法上,如果给f()和h()一起加一个锁,就没问题了。还有,单核的和多核的cpu的输出结果也可能天差地别,如果处理g()的cpu空闲一点,有可能g()会先输出。
  • 2楼网友:千夜
  • 2021-11-28 22:01
你没有优先级的话,这几个线程是随即的 不一定按照你写的顺序进行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯