问题描述
初学者求教~~请问如果方法1定义时加入了同步,而方法1里面调用了方法2,当执行到方法2时,此时方法1的锁被解开了吗? 问题补充:lerous 写道
解决方案
引用便问下:您是怎么测试是否等待的~~嘿嘿~~多谢 这个开几个线程访问一直打印!等待的时候是不打印的! 等待结束 继续打印!引用有个疑问:如果方法2只能有方法1调用,这样的话如果方法2不是同步的,当被调用时,其他地方是不是也就等待了随意调用! 你可以试试
解决方案二:
引用当执行到方法2时,此时方法1的锁被解开了吗? 1.0 首先 方法1 里面调用 方法2 方法1 还能提前释放?除非系统问题2.0 个人做实验如果没记错的话! 方法2 如果不是同步的 随便调用! 如果方法2 是同步的 !被调用时 其他地方等待!
解决方案三:
需要等到方法1返回时才将释放锁.由于方法2是由方法1调用所以此时方法1还在执行中,并不会释放锁
解决方案四:
同步不是针对某个方法,而是针对对象的。加锁也是对方法中的对象进行加锁,所以我认为既是调用了方法二,对象的锁没有释放,还是要看对像的状态才可以决定是否已经释放锁了。
解决方案五:
同步是针对于不同的线程中执行这个同步方法时,它们之间会形成互斥,你这是同一个线程,是不存在这个锁的问题,是可以正常调用的
时间: 2024-10-25 00:25:17