個人作品 VC 版ReadWriteLock

2021-09-25 19:21:10 字數 1506 閱讀 7955

#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 發布 ...