线程同步时,哪些操作会释放锁?哪些操作不会释放锁?
生活随笔
收集整理的這篇文章主要介紹了
线程同步时,哪些操作会释放锁?哪些操作不会释放锁?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
釋放鎖的操作:
1.當前線程的同步方法、同步代碼塊執行結束。
2.當前線程在同步代碼塊、同步方法中遇到break、return終止 了該代碼塊、該方法的繼續執行。
3.當前線程在同步代碼塊、同步方法中出現了未處理的Error或Exception,導致異常結束。
4.當前線程在同步代碼塊、同步方法中執行了線程對象的wait()方法,當前線程暫停,并釋放鎖。
不會釋放鎖的操作:
1.線程執行同步代碼塊或同步方法時,程序調用Thread. sleep()、Thread.yield()方法暫停當前線程的執行
2.線程執行同步代碼塊時,其他線程調用了該線程的suspend()方法將該線程掛起,該線程不會釋放鎖(同步監視器)。
?應盡量避免使用suspend()和resume()來控制線程(已經過時啦)
總結
以上是生活随笔為你收集整理的线程同步时,哪些操作会释放锁?哪些操作不会释放锁?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)在WCF服务的ServiceRef
- 下一篇: win7下安装memcached出现fa