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

牽著老婆滿街逛

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

簡(jiǎn)單的多線程同步的小工具類

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

快速互斥鎖,封裝了臨界區(qū)的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); }
}
;

簡(jiǎn)單封裝了Windows的信號(hào)量(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); };
}
;

讀寫互斥鎖,多線程可以同時(shí)讀取同一個(gè)文件,但是卻不能同時(shí)寫入同一個(gè)文件,對(duì)某一個(gè)文件的寫操作必須是某一個(gè)線程所獨(dú)占的。
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(); };
}
;


區(qū)域鎖
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&);
}
;
曉得區(qū)域鎖咋用吧?
void xxxFuc()
{
ScopeLock
<FastMutex> mutex;

}

區(qū)域解鎖
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&);
}
;
與上面的區(qū)域鎖的操作相反。

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

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


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久亚洲色图| 亚洲欧洲综合| 久久久久久亚洲精品中文字幕| 亚洲综合电影一区二区三区| 亚洲午夜精品一区二区| 在线亚洲观看| 午夜久久资源| 久久精品日产第一区二区| 久久综合99re88久久爱| 欧美成人a视频| 91久久精品久久国产性色也91| 亚洲欧洲综合另类| 亚洲精品少妇| 亚洲一区在线免费| 久久aⅴ国产欧美74aaa| 久久一区二区三区国产精品| 欧美ab在线视频| 欧美日韩一级黄| 国产精品自拍网站| 影音先锋在线一区| 日韩亚洲欧美一区二区三区| 亚洲永久免费观看| 久久精品免费播放| 亚洲电影成人| 亚洲午夜久久久久久久久电影院| 欧美在线二区| 欧美激情综合色综合啪啪| 国产精品女同互慰在线看| 红杏aⅴ成人免费视频| 日韩视频国产视频| 欧美有码视频| 亚洲激情视频在线播放| 亚洲欧美久久久| 美脚丝袜一区二区三区在线观看| 欧美午夜精品电影| 激情综合色丁香一区二区| 艳女tv在线观看国产一区| 久久精品30| 亚洲人成免费| 久久精品91| 欧美日韩午夜精品| 永久555www成人免费| 99在线热播精品免费| 久久久久五月天| 日韩午夜在线电影| 久久夜色精品一区| 国产乱肥老妇国产一区二 | 噜噜噜在线观看免费视频日韩| 欧美承认网站| 韩国v欧美v日本v亚洲v| 日韩亚洲欧美中文三级| 久久精品二区| 99re热精品| 美女91精品| 国产在线国偷精品产拍免费yy| 亚洲精品之草原avav久久| 久久精品二区| 在线中文字幕一区| 欧美黄色视屏| 亚洲第一精品夜夜躁人人爽| 欧美一区2区三区4区公司二百| 亚洲精品美女91| 鲁大师影院一区二区三区| 国产精品永久免费观看| 一区二区三区日韩| 亚洲国产91精品在线观看| 久久av一区二区三区漫画| 国产精品a久久久久| 亚洲三级电影全部在线观看高清| 久久久久久久久久码影片| 中文国产成人精品久久一| 欧美成人在线网站| 在线看一区二区| 久久久一区二区三区| 亚洲在线视频网站| 国产精品白丝jk黑袜喷水| 一区二区国产精品| 亚洲激情在线激情| 欧美成人激情视频| 最新国产乱人伦偷精品免费网站| 久久综合色8888| 欧美影院久久久| 国产视频一区在线观看| 亚洲男人第一av网站| 一区二区久久久久| 欧美色网一区二区| 亚洲一区二区在线观看视频| 亚洲精品黄色| 欧美精选午夜久久久乱码6080| 91久久综合| 亚洲国产视频直播| 欧美精品成人| 99精品99久久久久久宅男| 亚洲国产中文字幕在线观看| 欧美91福利在线观看| 亚洲黄色成人网| 欧美激情成人在线视频| 免费在线成人| 亚洲精品美女久久久久| 亚洲精品乱码| 欧美视频中文字幕| 午夜欧美不卡精品aaaaa| 亚洲午夜激情网站| 国产欧美一区二区三区在线老狼 | 国内精品久久久| 久久精品成人一区二区三区| 欧美一区二区三区成人| 狠狠色狠狠色综合日日小说| 久久一区免费| 美女爽到呻吟久久久久| 亚洲美女色禁图| 日韩系列在线| 国产麻豆综合| 免费不卡亚洲欧美| 欧美高清在线视频| 亚洲一区二区三区久久| 亚洲一区二区三区久久| 国产中文一区| 亚洲国产日韩在线| 国产精品国产精品| 久久久久久色| 欧美高清视频一区二区三区在线观看| 一本色道久久88精品综合| 亚洲一区二区在线| 伊人久久婷婷| 99re66热这里只有精品4| 国产欧美精品日韩精品| 免费在线观看一区二区| 欧美日韩国产va另类| 欧美在线视频免费观看| 鲁大师影院一区二区三区| 亚洲图片激情小说| 久久疯狂做爰流白浆xx| 亚洲日本一区二区三区| 亚洲少妇诱惑| 亚洲国产婷婷香蕉久久久久久99| 一本到12不卡视频在线dvd| 国产一区二区三区的电影| 亚洲国产视频a| 国产三级欧美三级日产三级99| 欧美高清视频在线| 国产精品毛片大码女人| 免费在线观看一区二区| 国产精品久久999| 麻豆av一区二区三区久久| 欧美日韩免费一区二区三区| 久久久999成人| 欧美日本亚洲韩国国产| 久久久精品2019中文字幕神马| 欧美精品一区在线播放| 欧美制服丝袜| 欧美日本韩国在线| 久久综合狠狠综合久久综合88| 欧美视频福利| 亚洲大片免费看| 国产手机视频一区二区| 日韩午夜免费| 亚洲黄色小视频| 欧美一区二区视频在线观看2020 | 国产曰批免费观看久久久| 亚洲啪啪91| 在线精品国产欧美| 亚洲午夜精品久久久久久app| 亚洲欧洲一区二区在线播放| 午夜精品久久久久影视| 一区二区av| 蜜桃精品一区二区三区| 久久狠狠婷婷| 国产精品久久久久久久9999| 亚洲国产日韩欧美一区二区三区| 国模叶桐国产精品一区| 亚洲小少妇裸体bbw| 一本大道久久a久久精二百| 浪潮色综合久久天堂| 久久激情中文| 国产精品一区二区在线| 一区二区三区高清| 99精品视频免费观看视频| 久久综合五月| 免费观看欧美在线视频的网站| 国产日韩在线播放| 亚洲男人影院| 欧美一区免费| 国产精品久久久久一区二区| 亚洲精品一区二区三区99| 亚洲精品中文字幕在线| 狂野欧美激情性xxxx欧美| 麻豆精品国产91久久久久久| 国产亚洲一级| 亚洲欧美一区二区激情| 欧美一区二区精品在线| 国产九九精品| 午夜精品久久久久久久久| 欧美一区午夜精品| 国产欧美 在线欧美| 亚洲欧美偷拍卡通变态| 欧美在线观看视频在线| 国产情人综合久久777777| 亚洲曰本av电影| 久久精品成人一区二区三区|