博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mutex
阅读量:7039 次
发布时间:2019-06-28

本文共 1256 字,大约阅读时间需要 4 分钟。

#include "stdafx.h"#include 
#include
#include
using namespace std; HANDLE hMutex = NULL; int arr[5] = {1, 2, 3, 4, 5}; DWORD CALLBACK Thread1(LPVOID Param) { while(true) { WaitForSingleObject(hMutex, INFINITE); cout << "Thread1:/t"; for (int i = 0; i < 5; i++) { cout << arr[i] << ' '; Sleep(50); } cout << endl; ReleaseMutex(hMutex); } } DWORD CALLBACK Thread2(LPVOID Param) { while(true) { WaitForSingleObject(hMutex, INFINITE); cout << "Thread2:/t"; for (int i = 0; i < 5; i++) { cout << arr[i] << ' '; Sleep(50); } cout << endl; ReleaseMutex(hMutex); } } int main() { hMutex = CreateMutex(NULL, FALSE, NULL); CreateThread(NULL, 0 ,Thread1, NULL, NULL, NULL); CreateThread(NULL, 0 ,Thread2, NULL, NULL, NULL); while(true) { Sleep(100); } return 0; }

  

互斥是有线程所有权的

hMutex = CreateMutex(NULL, FALSE, NULL);  

FALSE:不为任何线程所有,但他现在也是激发的

TRUE:当前的创建线程所有,默认不激发

转载于:https://www.cnblogs.com/Browneyes/p/6164452.html

你可能感兴趣的文章
【105】无线网络WIFI密码破解(附下载文件)
查看>>
WordPress非插件添加文章浏览次数统计功能
查看>>
端口被占用
查看>>
java io流中怎么在一个文本中追加字符串
查看>>
【转】VS2012程序打包部署详解
查看>>
pannel加载form
查看>>
Lucene查询对象笔记_TermQuery(笔记)
查看>>
培养"带得走"的8种职场能力
查看>>
NYOJ-228 士兵杀敌(五)
查看>>
如何批量替换相对地址为绝对地址?PHP
查看>>
实现带参数的多线程的方式
查看>>
从 bootup.js 学习加载脚本等资源
查看>>
每日英语:Bosses May Use Social Media to Discriminate Against Job Seekers
查看>>
web前端
查看>>
Xlib: connection to ":0.0" refused by server Xlib: No protocol specified解决方案
查看>>
现有一些开源ESB总线的比較
查看>>
java多线程的等待唤醒机制及如何解决同步过程中的安全问题
查看>>
阿里面试经历-2014.4.18研发实习生面试经历
查看>>
Android Calendar获取年月日时分秒毫秒
查看>>
大型网站架构
查看>>