线程调用同步方法
當一個線程A調用一個對象的同步(Syncronized)方法,如果線程A中沒有wait方法,那么其他線程就不能調用該對象中的同步方法了,但是可以調用非同步方法。
?
這是因為,(非靜態的)同步方法的同步鎖是當前類的對象(this),當一個線程調用同步方法時,就持有了該對象鎖,在方法內部沒有wait方法時,其他線程調用此對象的同步方法時也需要獲得此對象this對象鎖,但是該鎖被A持有,所以其他線程訪問不了。但是如果A線程調用同步方法中遇到wait,就會釋放鎖了,此時其他線程就可以調用同步方法了。
?
對于static Syncronized方法,它的鎖是類名.Class
轉載于:https://www.cnblogs.com/xiaolovewei/p/8004168.html
總結
- 上一篇: RT-Thread内核之线程调度(5)
- 下一篇: 【Spark机器学习速成宝典】模型篇01