65,186
社区成员




#include <pthread.h>
class Mutex {
public:
Mutex() {
pthread_mutex_init(&mu_, NULL);
}
~Mutex() {
pthread_mutex_destroy(&mu_);
}
void Lock() {
pthread_mutex_lock(&mu_);
}
void Unlock() {
pthread_mutex_unlock(&mu_);
}
private:
pthread_mutex_t mu_;
};
class MutexLock {
public:
MutexLock(Mutex *mu): mu_(mu) { mu_->Lock(); }
~MutexLock() { mu_->Unlock(); }
private:
Mutex *mu_;
};
class Test {
public:
Test():c_(0) {
}
void add(int i) {
MutexLock l(&mu_);
c_ += i;
}
int get() {
MutexLock l(&mu_);
return c_;
}
private:
int c_;
Mutex mu_;
};
void add(int i) {
MutexLock l(&mu_);
c_ += i;
}
int get() {
MutexLock l(&mu_);
return c_;
}