windows下信号量和共享内存api, mark:共享内存实现进程间锁
来源:互联网 发布:开源 微信公众号 php 编辑:程序博客网 时间:2024/06/05 20:35
关于信号量的:
HANDLE hSem = OpenSemaphore( SEMAPHORE_ALL_ACCESS ,FALSE, "my_mutex");
if (!hSem){
hSem = CreateSemaphore(NULL, 1, 1, "my_mutex");
if (hSem == INVALID_HANDLE_VALUE)
{
return false;
}
}
DWORD ret = WaitForSingleObject(hSem, 5000);
if (ret == WAIT_OBJECT_0)
{
Sleep(100000);
}
ReleaseSemaphore(hSem, 1, NULL);
CloseHandle(hSem);
关于共享内存的:
HANDLE handle;
handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, TRUE, "test");
if (handle == NULL)
{
handle = ::CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 256, "test");
if (handle == NULL)
{
return 1;
}
}
char *p = reinterpret_cast<char *>(MapViewOfFile(handle, FILE_MAP_ALL_ACCESS, 0, 0, 0));
if (!p)
{
UnmapViewOfFile(p);
CloseHandle(handle);
return 1;
}
UnmapViewOfFile(p);
CloseHandle(handle);
另外: 看到一种做法是用共享内存中的实现进程间锁的方式,这个没有完全确定共享内存的数据读写一定不经过cpu缓冲,或者是经过了且满足cpu缓存一致性原则。所以没有确认共享内存实现的进程间锁一定没有问题。 找个时间确认一下这个问题吧,mark~
- windows下信号量和共享内存api, mark:共享内存实现进程间锁
- 通过共享内存和信号量实现进程间的通信
- 使用信号量和共享内存实现进程间通信
- 共享内存和信号量
- 信号量和共享内存
- Linux下通过共享内存进行进程间通信,进程间同步使用信号量来实现
- Linux下通过共享内存进行进程间通信,进程间同步使用信号量来实现
- 进程间共享内存(信号量实现同步)
- 进程间通信--信号量+共享内存
- 进程间通信--信号量+共享内存
- Linux--进程间通信-共享内存-信号量
- 进程间通信—共享内存、信号量
- 进程通信--信号量,共享内存
- 使用共享内存和信号量实现数据通信
- 通过信号量和共享内存实现h264码流在不同进程间传输
- 进程间通信之分别用共享内存和信号量实现卖票
- Linux信号量和共享内存
- system v 共享内存 + 匿名信号量 , 实现进程互斥
- Levenshtein distance
- linux下取消页读写保护
- Php 体系结构及其执行概述
- Begin~
- MCV模式
- windows下信号量和共享内存api, mark:共享内存实现进程间锁
- 2012.09.13_使用多 fastcgi 进行 php 负载均衡
- 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
- hdu 3332 暴力枚举
- 内存管理知识
- 用户体验:别让我想,别让我停!
- 魔鬼的梦魇—验证IE中的JS内存泄露(二)
- GIT GUI使用
- 实现两个数大小的比较