mymutexpool.cpp

来自「linux下线程的创建、管理」· C++ 代码 · 共 47 行

CPP
47
字号
#include "mymutexpool_p.h"#include "mythread.h"MyMutexPool *my_global_mutexpool = 0;MyMutexPool::MyMutexPool (int size):mutex (), count (size){  mutexes = new MyMutex *[count];  for (int index = 0; index < count; ++index)  {    mutexes[index] = 0;  }}MyMutexPool::~MyMutexPool (){  MyMutexLocker locker (&mutex);  for (int index = 0; index < count; ++index)  {    delete mutexes[index];    mutexes[index] = 0;  }  delete[]mutexes;  mutexes = 0;}MyMutex *MyMutexPool::get (void *address){  int index = (int) ((unsigned long) address % count);  if (!mutexes[index])  {    MyMutexLocker locker (&mutex);    if (!mutexes[index])    {      mutexes[index] = new MyMutex ();    }  }  return mutexes[index];}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?