锁的效率测试

来源:互联网 发布:淘宝客新玩法 编辑:程序博客网 时间:2024/04/30 00:17
#include <pthread.h>#include <iostream>using namespace std;class lock{public:  lock(pthread_mutex_t *mutex):    mutex_(mutex)  {    pthread_mutex_lock(this->mutex_);  }  ~lock()  {    pthread_mutex_unlock(this->mutex_);  }private:  pthread_mutex_t *mutex_;};int main(int argc, char *argv[]){  pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;  int num = ::atoi(argv[1]);  int begin = clock();  for (int i = 0; i < num; ++i)  {    pthread_mutex_lock(&mutex);    pthread_mutex_unlock(&mutex);  }  int end = clock();  cout << (end - begin)<< endl;  begin = clock();  for (int i = 0; i < num; ++i)  {    lock  a(&mutex);  }  end = clock();  cout << (end - begin)<< endl;}

100000000 num 测试  无明显差距

在加锁和释放锁本身并不太消耗耗时,  耗时在于锁被锁住 而一方也要加锁 而处于等待阶段




原创粉丝点击