问答详情
源自:4-4 Java线程交互之深入剖析互斥与同步

如果用return,那么条件不满足时是怎么竞争资源的?

http://img.mukewang.com/5951185e0001ec7604830292.jpg


如果就用return的话是不是执行到return的时候这个方法就结束了,继续下一行代码了,怎么会竞争锁资源呢??想不通,请解答一下

提问者:醉里挑灯开车 2017-06-26 22:25

个回答

  • luffymaika
    2017-10-22 20:19:55

    假设原本有n个线程,return了之后,当前线程又回到可运行状态继续争抢cpu资源,争夺的数目为n;

    如果用wait方法,会把线程放入lock对象的wait set中,不去争抢cpu,争夺资源的线程数为n-1,这样也就节省了一部分系统因为线程争夺锁的开销

  • 慕粉3954379
    2017-06-27 22:34:07

    仔细看下图将能找到答案!

    http://img.mukewang.com/59526ca60001a7a912680644.jpg