資料庫有x鎖及s鎖,請問如何用c++實現這種類似的讀寫鎖。
遠景能源的一面題目。解決方法如下:
用兩個鎖,乙個mutex mlock乙個semophore semlock,假設semlock初始為64,即最多不會超過64條執行緒同時做讀寫操作。
s鎖(即讀鎖)的實現如下:
req semlock 1;//請求乙個訊號量資源(總共有64個資源)
do reading;
release semlock 1;
x鎖(即寫鎖)的實現如下:
req mlock;
req semlock 64;//請求全部64個訊號量資源(總共有64個資源)
do writing;
release semlock 64;
release mlock;
Python面試筆試題記錄
1 python2和python3的range 100 的區別?python2返回列表,python3返回迭代器,節約記憶體 2 一句話解釋什麼樣的語言能夠用裝飾器?函式可以作為引數傳遞的語言,可以使用裝飾器 3 簡述物件導向中 new 和 init 區別?init 是初始化方法,建立物件後,就立刻...
筆試面試題記錄
在intel 8086中,加減乘除那個整數運算最耗時 所有計算機中,乘除減法都是通過半加器全加器等加法來實現的,乘法左移,除法右移,但除法會多乙個分母不能為零的處理,是除法最耗時 19本書,編號從1 19。從中抽五本,任意相鄰兩本不是相鄰編號的情況有多少種。先將問題簡化成5本書取2本。可以假設2本書...
筆試面試題記錄
1.c 為什麼不建議在.h檔案中使用using namespace std namespace 的引入是為了解決名字衝突的問題,而 using namespace.的引入是為了方便程式設計師,使其不用每次都輸入長長的名字。這些都跟效能無關。通常不建議在標頭檔案中使用 using namespace ...