青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

簡單的多線程同步的小工具類

一些適用于Windows下的多線程同步的小工具類。

快速互斥鎖,封裝了臨界區的Windows API:
class FastMutex
{
private:
    CRITICAL_SECTION    m_Cs;

public:
    FastMutex() 
{ ::InitializeCriticalSection(&this->m_Cs); }
    
~FastMutex() { ::DeleteCriticalSection(&this->m_Cs); }
    
void    Lock()        { ::EnterCriticalSection(&this->m_Cs); }
    
bool    TryLock()    return ::TryEnterCriticalSection(&this->m_Cs) ? true : false; }
    
void    Unlock()    { ::LeaveCriticalSection(&this->m_Cs); }
}
;

簡單封裝了Windows的信號量(Semaphore)的API。
class FastSemaphore
{
private:
    HANDLE    m_hSemaphore;
    
long m_lMaximumCount;

public:
    FastSemaphore(
long lMaximumCount)
    
{
        
this->m_hSemaphore = ::CreateSemaphore(NULL, lMaximumCount, lMaximumCount, NULL);

        
if (this->m_hSemaphore == NULL) throw "Call to CreateSemaphore() failed. Could not create semaphore.";
        
this->m_lMaximumCount = lMaximumCount;
    }
;

    
~FastSemaphore() { ::CloseHandle(this->m_hSemaphore); };

    
long GetMaximumCount() const return this->m_lMaximumCount; };
    
void Inc() { ::WaitForSingleObject(this->m_hSemaphore, INFINITE); };
    
void Dec() { ::ReleaseSemaphore(this->m_hSemaphore, 1, NULL); };
    
void Dec(long lCount) { ::ReleaseSemaphore(this->m_hSemaphore, lCount, NULL); };
}
;

讀寫互斥鎖,多線程可以同時讀取同一個文件,但是卻不能同時寫入同一個文件,對某一個文件的寫操作必須是某一個線程所獨占的。
class ReadWriteMutex
{
private:
    FastMutex        m_qMutex;
    FastSemaphore    m_qSemaphore;

public:
    ReadWriteMutex(
long lMaximumReaders): m_qSemaphore(lMaximumReaders) {};

    
void    lockRead() { m_qSemaphore.Inc(); };
    
void    unlockRead() { m_qSemaphore.Dec(); };

    
void lockWrite()
    
{
        m_qMutex.Lock();
        
for (int i = 0; i < maxReaders(); ++i) m_qSemaphore.Inc();
        m_qMutex.Unlock();
    }
;

    
void    unlockWrite() {  m_qSemaphore.Dec(m_qSemaphore.GetMaximumCount()); };
    
int        maxReaders() const return m_qSemaphore.GetMaximumCount(); };
}
;


區域鎖
template <class M>
class ScopedLock
{
public:
    inline ScopedLock(M
& mutex): _mutex(mutex)
    
{
        _mutex.Lock();
    }

    inline 
~ScopedLock()
    
{
        _mutex.Unlock();
    }


private:
    M
& _mutex;

    ScopedLock();
    ScopedLock(
const ScopedLock&);
    ScopedLock
& operator = (const ScopedLock&);
}
;
曉得區域鎖咋用吧?
void xxxFuc()
{
ScopeLock
<FastMutex> mutex;

}

區域解鎖
template <class M>
class ScopedUnlock
{
public:
    inline ScopedUnlock(M
& mutex, bool unlockNow = true): _mutex(mutex)
    
{
        
if (unlockNow)
            _mutex.Unlock();
    }

    inline 
~ScopedUnlock()
    
{
        _mutex.Lock();
    }


private:
    M
& _mutex;

    ScopedUnlock();
    ScopedUnlock(
const ScopedUnlock&);
    ScopedUnlock
& operator = (const ScopedUnlock&);
}
;
與上面的區域鎖的操作相反。

NOTE:他們只是簡單的小工具類,他們只是保證了“能用”,當中可能有很多不足,或者不適用特別的情況。

posted on 2008-05-04 10:43 楊粼波 閱讀(451) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产精品中文字幕| 午夜视频一区二区| 亚洲一区二区三区四区五区午夜| 欧美天堂亚洲电影院在线播放 | 亚洲成在人线av| 欧美日本国产视频| 国产一区二区三区免费在线观看| 亚洲精品日韩精品| 久久亚洲风情| 亚洲女性喷水在线观看一区| 欧美日本一区二区三区| 在线亚洲欧美| 国产一区二区三区的电影| 久久精品国产99国产精品| 91久久极品少妇xxxxⅹ软件| 欧美一区午夜视频在线观看| 国产精品免费看片| 亚洲视频碰碰| 亚洲精品欧美在线| 欧美国产三区| 欧美一区二区精品久久911| 一本色道久久综合狠狠躁的推荐| 久久久久久69| 国内精品国产成人| 久久久精品999| 午夜免费电影一区在线观看| 亚洲高清在线| 欧美国产日本在线| 玖玖国产精品视频| 在线色欧美三级视频| 久久欧美中文字幕| 久久精品国产视频| 1769国产精品| 一本色道久久精品| 亚洲黄色影院| 亚洲精品一区二区三| 国产女人18毛片水18精品| 欧美一区二视频| 欧美日韩精品综合| 欧美一区二区三区视频免费| 牛牛国产精品| av成人手机在线| 99视频超级精品| 国产精品久久久久9999吃药| 欧美一区二区三区在线播放| 欧美好骚综合网| 久久综合伊人| 欧美a级理论片| 久久免费99精品久久久久久| 欧美日韩一区二区三区免费看| 亚洲午夜精品久久久久久浪潮| 久久亚洲二区| 亚洲一级黄色av| 欧美肥婆bbw| 欧美91视频| 日韩亚洲一区在线播放| 亚洲国产经典视频| 午夜一区在线| 亚洲欧美日韩国产成人| 欧美在线国产精品| 欧美专区亚洲专区| 久久一区国产| 香蕉久久精品日日躁夜夜躁| 久久精品在线播放| 99视频精品| 欧美国产激情二区三区| 欧美刺激午夜性久久久久久久| 欧美日韩精品免费在线观看视频| 亚洲国产91精品在线观看| 欧美日韩亚洲一区二区三区在线 | 免费观看国产成人| 欧美日韩高清免费| 亚洲精品乱码视频| 午夜精品久久久久久久99水蜜桃| 亚洲第一伊人| 美女免费视频一区| 欧美一区二区三区久久精品| 国产精品一区二区三区免费观看 | 亚洲欧美中文另类| 模特精品在线| 亚洲精品小视频| 亚洲综合日韩| 欧美电影免费观看大全| 欧美在线免费观看| 雨宫琴音一区二区在线| 午夜精品久久久久久久男人的天堂| 欧美一区二区三区在| 伊人久久大香线蕉综合热线| 欧美成人免费一级人片100| 亚洲三级色网| 久久精品一区蜜桃臀影院| 亚洲风情在线资源站| 欧美日本国产精品| 欧美一区二区三区在线视频| 亚洲天堂免费观看| 国产精品一区二区三区乱码| 久久久国产午夜精品| 亚洲三级电影全部在线观看高清| 亚洲专区一二三| 一区二区在线看| 久久久噜噜噜久久中文字免| 最新国产の精品合集bt伙计| 羞羞色国产精品| 亚洲激情网站| 国产午夜精品一区二区三区视频| 亚洲在线观看视频网站| 亚洲免费一级电影| 黄色亚洲精品| 在线视频一区观看| 久久精品一级爱片| 欧美在线视频观看| 欧美亚洲一区二区在线| 久久先锋影音| 亚洲一区日本| 最近看过的日韩成人| 午夜精品一区二区在线观看| 亚洲成色777777在线观看影院| 欧美日韩综合网| 久久免费偷拍视频| 亚洲免费网站| 亚洲精品资源| 欧美激情2020午夜免费观看| 亚洲欧美在线免费观看| 亚洲精品久久视频| 尤物九九久久国产精品的分类| 国产精品一区二区久久精品| 欧美精品电影在线| 亚洲国产高清高潮精品美女| 久久精品官网| 欧美一区二区三区免费大片| 中文国产成人精品久久一| 国产精品乱码妇女bbbb| 亚洲伊人色欲综合网| 香蕉成人久久| 99亚洲一区二区| 亚洲日本成人| 欧美另类videos死尸| 老司机午夜精品视频| 久久久久国产一区二区| 欧美一区在线看| 欧美一区激情| 久久国产精品久久久久久电车| 亚洲在线黄色| 亚洲一区二区三区视频| 亚洲一区二区网站| 亚洲欧美日韩在线不卡| 亚洲一区二区欧美| 先锋影音网一区二区| 亚洲欧美一区二区三区久久| 亚洲欧美激情四射在线日| 亚洲欧美日韩网| 午夜一级在线看亚洲| 欧美综合二区| 久久只精品国产| 亚洲福利久久| 一本色道久久综合亚洲精品不卡| 欧美激情四色| 日韩午夜在线播放| 欧美在线视频在线播放完整版免费观看 | 久久综合综合久久综合| 免播放器亚洲| 亚洲高清毛片| 99国产精品久久久久久久成人热| 一本色道久久综合亚洲精品高清| 亚洲一区免费观看| 久久av一区二区三区亚洲| 浪潮色综合久久天堂| 欧美精品激情blacked18| 欧美日韩在线播放一区二区| 国产精品无码专区在线观看| 欧美福利一区| 欧美午夜国产| 欧美区一区二区三区| 欧美丝袜一区二区| 国产一区二区欧美日韩| 亚洲美女色禁图| 亚洲激情在线观看| 99热在这里有精品免费| 亚洲综合精品一区二区| 久久在线免费观看视频| 亚洲精品久久久久久一区二区| 亚洲小视频在线| 亚洲视频1区| 亚洲天天影视| 毛片基地黄久久久久久天堂| 国产精品久久国产三级国电话系列| 国产综合视频| 亚洲性xxxx| 美女图片一区二区| 亚洲视频电影在线| 欧美va亚洲va国产综合| 国产亚洲精品bv在线观看| 99精品视频免费观看视频| 久久人人97超碰国产公开结果| 亚洲精品一区二区三区蜜桃久 | 蜜臀久久久99精品久久久久久| 国产精品视频内| 正在播放欧美视频| 欧美激情一区二区三区在线视频观看| 亚洲一区二区视频在线|