我在同步方面有些疑问:
如果我从同步方法中调用非同步方法 非同步方法是否可以无锁,其他可以吗 方法(实例方法)是否仍访问非同步方法?
如果我具有类级别锁,可以同步其他线程访问 实例方法在同一时间?
答案 0 :(得分:0)
进入synchronized
实例方法的线程获得了对对象(this
)的锁定,但没有锁定整个对象。这样可以防止两个线程同时进入同步(实例)方法,但是其他非同步方法仍然可以由其他线程同时执行。
类级锁定将阻止线程进入任何同步的类级(静态)方法。同步实例方法获取当前实例(this
)的锁。由于这些锁不相同,因此同步实例方法将不会被阻止。
可以很好地总结该主题here