问一个线程优先级的问题

auly403 2008-04-16 06:00:34
为防止网络发送时乱序 一个互斥.
在发送前 WaitForSingleObject(h_mtxSocket,-1);
在接收后 ReleaseMutex(h_mtxSocket);

有几个线程调用.时.
出现死锁.

跟踪发现. 低优先级的进入发送状态. 激活WaitForSingleObject
在没有接收好之前(也就是说没有ReleaseMutex)
如果一个高优先级的线程也是进入发送状态. 激活WaitForSingleObject

这是死锁时.跟踪线程出来的形态.
请问这是互斥与其它的内核对象区别之一?
是临界区就没有问题了吗?
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoulie 2008-04-17
  • 打赏
  • 举报
回复
同步跟优先级没有关系的,高优先级与低优先级只是CPU分配的时间片不一样,但不会产生死锁
rainID 2008-04-16
  • 打赏
  • 举报
回复
是啊,无论线程优先级,只要被WaitForSingleObject获得的Mutex,在没有被Release之前,其它线程是不能获得这个Mutex的吧?
XiangDong 2008-04-16
  • 打赏
  • 举报
回复
如果资源已经被低优先级的线程占用,高优先级的线程应该也不能获得资源的阿.
hityct1 2008-04-16
  • 打赏
  • 举报
回复
ding

15,471

社区成员

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

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