27.mutex跨进程通信
2024-08-31 16:35:30
- 创建互斥量mutex
HANDLE mutex = CreateMutexA(NULL, TRUE, name);
- 根据id打开mutex
HANDLE mutex = OpenMutexA(MUTEX_ALL_ACCESS,TRUE,name);
- 监听
DWORD res = WaitForSingleObject(mutex, );
- 判断事件
switch (res)
{
case WAIT_OBJECT_0:
printf("收到信号-------");
break;
case WAIT_TIMEOUT:
printf("超时没有收到-------");
break;
case WAIT_ABANDONED:
printf("另外一个进程意外终止-------");
break;
default:
break; }
mutex.c
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h> char name[] = "haihualovefang"; void main()
{
HANDLE mutex = CreateMutexA(NULL, TRUE, name);
printf("创建成功");
char ch = getch(); ReleaseMutex(mutex);
printf("触发互斥量");
CloseHandle(mutex); }
wait.c
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h> char name[] = "myevent"; void main()
{
HANDLE event = OpenEventA(EVENT_ALL_ACCESS, TRUE, name);//打开事件 if (event == NULL)
{
printf("打开失败");
system("pause");
return;
}
printf("等待-------");
DWORD res = WaitForSingleObject(event, );
switch (res)
{
case WAIT_OBJECT_0:
printf("收到信号-------");
break;
case WAIT_TIMEOUT:
printf("超时没有收到-------");
break;
case WAIT_ABANDONED:
printf("另外一个进程意外终止-------");
break;
default:
break; }
CloseHandle(event); system("pause");
}
最新文章
- php实现文件上传与下载(中)
- mysql服务器和配置优化
- vi--文本编辑常用快捷键之复制-粘贴-替换-删除
- caffe之(三)激活函数层
- java 枚举使用详解
- 大数据为什么要选择Spark
- MD5加密算法原理及实现
- jquery上传控件uploadify使用备忘
- 本地Eclipse连接HDFS进行简单的文件操作
- socket模拟通信实现ARQ停止等待协议
- Arrays工具类
- Feature Extractor[batch normalization]
- JAVA中使用LOG4J记录日志(转)
- c# async Task await Result 死锁
- ThinkPHP小知识点
- Sass 和 SCSS 有什么区别?
- 随笔idea-辗转落户cnblogs
- 了解eslint
- 201621123012 《Java程序设计》第9周学习总结
- 基于 Django 的手机管理系统
热门文章
- Java排序算法(二):简单选择排序
- Linux系统编程——进程间通信:信号中断处理
- openCV 和GDI画线效率对照
- how to backup and restore database of SQL Server
- libsvm 的使用
- Redis封装之Hash
- C++中友元类使用场合
- PullToRefreshListView中嵌套ViewPager滑动冲突的解决
- WebAssembly学习(五):AssemblyScript - Hello World
- angular-cli6使用ng serve --o 控制台报错Invalid Host Header