您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關java中自旋鎖的原理是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
1、說明
自旋鎖就是不嘗試獲得鎖,直到獲得鎖。如果實現了,就是通過不斷的循環獲得鎖,直到獲得鎖。
2、好處
因為堵塞和喚醒線程都需要很大的費用,如果同步代碼不復雜,那么執行代碼的費用可能還沒有切換線程所帶來的費用。因此此時只要自旋等待,就能避免上下文切換的費用,提高效率。
3、缺點
盡管避免了切換上下文的費用,但帶來了新的費用,不斷的自旋會占用CPU時間片做無用功,雖然一開始自旋的費用很低,但一直拿不到鎖,這種費用會越來越大。
4、使用場景
自旋適合并發程度不是特別高,同步代碼執行時間短。這樣,自旋轉可以避免線程切換,提高效率。
若同步碼執行時間較長,線程獲得鎖后,鎖釋放時間較長,則自旋將浪費CPU資源。
以上就是java中自旋鎖的原理是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。