一个线程同步的问题

JJONY 2000-03-13 10:50:00
如果我要做一个程序,有若干个线程,这些线程都要有序地访问同一个线程。应该用哪一类的同步对象?Semaphore?
...全文
360 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
box 2000-03-13
  • 打赏
  • 举报
回复
互斥量Mutex。信号量Semaphore主要用来解决一些有限资源的问题,如生产者消费者问题等。
如何使用互斥量:
首先用CreateMutex(...)获得一个Mutex句柄,在每个线程访问需同步的资源时先调用WaitForSingleObject(...),操作完成后调用ReleaseMutex(...)

Sniper推荐的书很经典,我也从中收益匪浅。另外你也可参考MSDN/Platform SDK/Windows Base Service/Interprocess Communication.
我这有一篇专门介绍进程间通信的文章(pdf格式),有兴趣的话email给我boxban@263.net
Sniper 2000-03-13
  • 打赏
  • 举报
回复
互斥量。强烈推荐《Windows高级编程指南》(第三版),清华大学出版社,[美]Jeffrey Richter著。
JJONY 2000-03-13
  • 打赏
  • 举报
回复
各位大虾,上面的问题我已经有了答案,对于多个线程同时访问同一个资源时,使用了同步对象后,在同一个时刻里只有一个线程才拥有资源的操作权限。其它的线程将被Block而且是“有序地”排列在系统队列中。
NoBug 2000-03-13
  • 打赏
  • 举报
回复
我对你的问题很疑惑,什么是“有序地访问同一个‘线程’”?。如果是“有序地”访问同一个资源的话,我想还是要采用同步对象,通过合理的进行同步与互斥,是可以是实现有序访问的(具体问题具体分析)。
JJONY 2000-03-13
  • 打赏
  • 举报
回复
似乎两位都没有正面回答我的问题,我要的是各线程如何“有序地”访问资源。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧