zoukankan      html  css  js  c++  java
  • 21.互斥量

    • 声明互斥量:
      1 HANDLE mutex = NULL;//指针
    • 创建互斥量
      1 CreateMutex(NULL, FALSE, NULL);//创建互斥量 互斥量变为1
    • 关闭互斥量
      1 CloseHandle(mutex);
    • 使用互斥量
      1   WaitForSingleObject(mutex, INFINITE);//等到互斥量就变为0
      2     for (int i = 0; i < 10000; i++)
      3     {
      4         num++;
      5     }
      6     ReleaseMutex(mutex);//释放互斥量变为1

    完整代码

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <Windows.h>
     4 
     5 int num = 0;
     6 
     7 //创建互斥量
     8 HANDLE mutex = NULL;//指针
     9 
    10 DWORD WINAPI add(void *p)
    11 {
    12     WaitForSingleObject(mutex, INFINITE);
    13     for (int i = 0; i < 10000; i++)
    14     {
    15         num++;
    16     }
    17     ReleaseMutex(mutex);
    18 
    19     return 0;
    20 }
    21 
    22 void main()
    23 {
    24     mutex = CreateMutex(NULL, FALSE, NULL);//创建互斥量
    25 
    26     HANDLE hd[10];
    27     for (int i = 0; i < 10; i++)
    28     {
    29         hd[i] = CreateThread(NULL, 0, add, NULL, 0, NULL);
    30     }
    31     WaitForMultipleObjects(10, hd, TRUE, INFINITE);
    32 
    33     printf("%d", num);
    34 
    35     CloseHandle(mutex);
    36     system("pause");
    37 }
  • 相关阅读:
    Zookeeper白话解析
    WireMock简单使用
    mysql通用包安装
    修改mysql密码
    jmeter for循环嵌套if学习2
    jmeter for循环嵌套if学习1
    jmeter Transaction Controller学习
    jmeter ForEach Controller学习
    loadrunner随笔1
    shell中创建mysql库和执行sql脚本
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8408727.html
Copyright © 2011-2022 走看看