[英]Java Multihreading Synchronization with Lock
在Java中,我們可以通過使用Lock接口和ReentrantLock
類來實現公平性,如下所示:
Lock lock=new ReentrantLock(true);
一旦我們實現公平性,那么在多個線程等待訪問鎖的情況下,等待大多數持續時間的那個被授予對鎖的訪問權。
任何人都可以提供JVM
如何跟蹤線程等待很長時間的細節,即JVM
如何實現公平性。
詳細信息在源代碼中。 Googling可以找到源代碼:
該代碼得到了極好的評論。
簡短的回答是每個鎖都有一個等待線程的隊列,它被實現為一個鏈表。
在“公平”情況下,在隊列非空時嘗試獲取鎖的線程被添加到隊列的末尾。
在“不公平”的情況下,如果鎖當前是空閑的,則線程可能會插入。 這樣可以提供更好的性能,因為您不需要執行需要系統調用的線程上下文切換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.