java多執行緒設計模式1 讀寫鎖模式

2021-08-19 05:14:32 字數 807 閱讀 4887

關於讀寫鎖模式需要明白幾個要素

1、寫:當前沒有寫操作,以及沒有讀操作

2、讀:當前沒有寫操作

package com.puqiuyu.thread.blog.pattern;

/** *

* *@author sunday

* */

public

class

writeandreadlock

public

writeandreadlock(boolean writepre)

public

synchronized

void

readlock() throws interruptedexception

readings++;

}public

synchronized

void

unreadlock()

public

synchronized

void

writelock() throws interruptedexception

writings++;

} finally

}public

synchronized

void

unwritelock()

}

簡單分析下

1、寫鎖時需要判斷是否有其他寫鎖占用,同時需要判斷是否有讀操作占用。如果有等待。

2、讀鎖時,需要判斷是否有寫鎖占用。

為了保證寫優先,單其他寫鎖加入後,之後讀鎖都等待。

多執行緒 讀寫鎖模式

讀寫鎖 1.寫寫加鎖 2.讀寫加鎖 3.寫都加鎖 4.讀讀不加鎖 public class readwritelock this readingreaders 因為使用了while,所以,當while結束的時候,說明寫完成了.可以讀取資料了.finally public synchronized v...

java多執行緒讀寫檔案之檔案鎖

檔案修改始終是一件很麻煩也很出錯的行為。多執行緒讀寫檔案更是會加大檔案內容混亂的機率,這時,一定要保證在某乙個時刻,只有乙個執行緒在對檔案進行讀寫操作。那麼其他訪問檔案的執行緒該怎麼辦呢?就像去atm取錢一樣,當atm正在被使用時,那麼其他想要使用atm的人只能等待知道atm能使用。讀寫檔案也一樣,...

多執行緒學習 讀寫鎖

讀寫鎖 reentrantreadwritelock 具有互斥排他效果,即同一時間只有乙個執行緒在執行鎖後面的任務,這種效率比較搞。讀鎖也稱為共享鎖,寫鎖也稱為排他鎖。多個讀鎖之間不互斥,讀鎖與寫鎖互斥,寫鎖與寫鎖互斥。在沒有執行緒thread進行寫入操作時,進行讀取操作的多個執行緒都可以獲取讀鎖,...