#pragma once
#include
#include
classreadwritelock
public:
readwritelock(void);
~readwritelock(void);
voidlockread(void);
voidlockwrite(void);
std::mutex m_lock_writecount;
std::mutex m_lock_prewritecount;
std::mutex m_lock_readcount;
intm_readcount;
intm_writecount;
intm_prewritecount;
std::condition_variable m_cv;
std::condition_variable m_cvprewrite;
voidunlockread(void);
voidunlockwrite(void);
#include "stdafx.h"
#include "readwritelock.h"
readwritelock::readwritelock(void)
: m_readcount(0), m_writecount(0)
readwritelock::~readwritelock(void)
/**張氏讀寫鎖 2019,[email protected] beijing normal university
*解決了多執行緒置換hashmap等操作中,需要執行緒同步控制的問題
*使用請保留作者資訊,以保證程式的正確性
*/void readwritelock::lockread(void)
else
}void readwritelock::unlockread(void)
void readwritelock::lockwrite(void)
else
//放開預寫判斷鎖
m_lock_prewritecount.lock();//預寫程序減一
--m_prewritecount;
//這裡可以考慮加入+1訊號量2操作
m_lock_prewritecount.unlock();
}void readwritelock::unlockwrite(void)
加入訊號量後,可以完美實現低cpu消耗的readwritelock。
個人專案作品設計 Sports history
專案背景 現在網上有許多關於今天歷史上發生的事情,而且這些事情看起來就像講述政治理論一樣,繁瑣而且包含的領域又很多。冗長冗長的,不夠清晰,我想設計的這一款專案是關於體育運動這一方面的歷史今天看。並且也可以進行對自己的體育活動的記錄和評價。專案功能分析 使用者進行註冊並實現登入。進入到登入介面後可以進...
作品集2017 2019(個人 公司)
產品 飛行包模擬器 產品簡介 逼真還原世界第一款個人飛行包 馬丁飛行包 的飛行特性 職責範圍 負責 vr體驗內容的設計與技術指導 與內容製作團隊進行溝通與專案跟進和階段驗收工作 生成發明專利的撰寫 產品 體驗倉模擬器 產品描述 逼真還原地面到臨近空間的飛行體驗,酷炫外觀,頂尖 vr大場景技術,頂級硬...
深度技術GHOSTXP轉殖版作品索引
系 統 類 快速裝機版系列 發布或更新時間 作 品 鏈 接 2008 05 02 深度技術 ghost xp sp3 快速裝機專業版 v8.1 2008 04 26 國內首發xpsp3轉殖版 深度技術 ghost xp sp3 快速裝機專業版 v8.0 ntfs f32 2008 04 19 發布 ...