讀寫鎖實現執行緒安全快取

2022-07-24 00:57:25 字數 1110 閱讀 3376

讀寫鎖:

可以多執行緒讀,但只有乙個執行緒寫入;並且寫入的時候不能讀取,讀取的時候不能寫入。具體**如下

測試**:

public

class

testreadandwritelock

for (int i = 0; i < 100; i++)

console.readline();

}public

void taskadd(int

i) );

}public

void taskread(int

i) );

}}

快取**:

public

class

synchronizedcache

}public

string read(int

key)

finally

}public

void add(int key, string

value)

finally

}public

bool addwithtimeout(int key, string value, int

timeout)

finally

return

true

; }

else

}public addorupdatestatus addorupdate(int key, string

value)

else

finally

return

addorupdatestatus.updated;}}

else

finally

return

addorupdatestatus.added;}}

finally

}public

void delete(int

key)

finally

}public

enum

addorupdatestatus

;~synchronizedcache()

}

解說執行緒安全之讀寫鎖

宣告 以下內容來自維基百科,但是融入個人思想,使其更加形象易懂 讀寫鎖 讀寫鎖實際是一種特殊的自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對於自旋鎖而言,能提高併發性,因為在 多處理器系統 中,它允許同時有多個讀者來訪問共享資源...

快取設計 讀寫鎖場景實現

設計乙個快取系統 讀寫鎖的應用。jdk1.5自帶的讀寫鎖特性,讀與讀不互斥,讀與寫互斥,寫與寫互斥。為什麼要使用讀寫鎖?一句話概括那就是提高系統效能,如何提高呢?試想,對於所有對讀的操作是不需要執行緒互斥的,而如果方法內 使用了synchronized關鍵字同步以達到執行緒安全,對於所有的執行緒不管...

讀寫鎖以及執行緒安全的集合

讀寫鎖實現 讀寫鎖實現執行緒安全的list 讀寫鎖實現 class mylist extends arraylist finally override public object get int index finally override public boolean add object e f...