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 + -
显示快捷键?