线程6:互斥量,解决线程冲突

来源:互联网 发布:python twisted 编辑:程序博客网 时间:2024/06/06 02:29
HANDLE mutex = NULL;int  num = 0;DWORD WINAPI add(void *p){WaitForSingleObject(mutex, INFINITE);for (int i = 0; i < 100000; i++){num++;}ReleaseMutex(mutex);}//临界区  超过64个线程就over了、互斥量用于解决线程冲突void main(){mutex = CreateMutex(NULL, FALSE, NULL);//创建互斥if (mutex == NULL){}HANDLE hd[64];//线程互斥,同一个互斥量,只能解决64个        服务器上没这个限制for (int i = 0; i < 64; i++){hd[i] = CreateThread(NULL, 0, add, NULL, 0, NULL);if (hd[i] == NULL){}}WaitForMultipleObjects(64, hd, TRUE, INFINITE);printf("%d", num);for (int i = 0; i < 64; i++)//关闭每一个线程的资源{CloseHandle(hd[i]);}CloseHandle(mutex);//关闭排斥   销毁system("pause");}

0 0