用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

Mutex锁

2015-05-16 作者: 易居山举报

[c++]代码库

#ifndef SYNOBJ_H
#define SYNOBJ_H

#include <windows.h>

#define CLASS_UNCOPYABLE(classname) \
    private: \
    classname(const classname&); \
    classname& operator=(const classname&);

class Mutex {
    CLASS_UNCOPYABLE(Mutex)
public:
    Mutex() :_cs() { InitializeCriticalSection(&_cs); }
    ~Mutex() { DeleteCriticalSection(&_cs); }
    void lock() { EnterCriticalSection(&_cs); }
    void unlock() { LeaveCriticalSection(&_cs); }
private:
    CRITICAL_SECTION _cs;
};

class Lock {
    CLASS_UNCOPYABLE(Lock)
public:
    explicit Lock(Mutex& cs) :_cs(cs) { _cs.lock(); }
    ~Lock() { _cs.unlock(); }
private:
    Mutex& _cs;
};

#endif/*SYNOBJ_H*/


网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...