Java線程:線程的同步-同步塊性能
對於同步,除了同步方法外,還能夠使用同步代碼塊,有時候同步代碼塊會帶來比同步方法更好的效果。線程
追其同步的根本的目的,是控制競爭資源的正確的訪問,所以只要在訪問競爭資源的時候保證同一時刻只能一個線程訪問便可,所以Java引入了同步代碼快的策略,以提升性能。對象
注意:資源
在使用synchronized關鍵字時候,應該儘量避免在synchronized方法或synchronized塊中使用sleep或者yield方法,由於synchronized程序塊佔有着對象鎖,你休息那麼其餘的線程只能一邊等着你醒來執行完了才能執行。不但嚴重影響效率,也不合邏輯。同步
一樣,在同步程序塊內調用yeild方法讓出CPU資源也沒有意義,由於你佔用着鎖,其餘互斥線程仍是沒法訪問同步程序塊。固然與同步程序塊無關的線程能夠得到更多的執行時間。效率