抢座位的问题?

freemam 2004-03-27 04:47:19
抢座位的问题
struct chess_desk
{
CString left;
CString right;
CMutex mutex_l;
CMutex mutex_r;
} desk;

一个线程进入:
desk.mutexl.Lock();
if (desk.lest.IsEmpty())
{
没人,可以坐下;
desk.mutexl.Unlock();
}
else
{
有人,不能坐下;
desk.mutexr.Unlock();
}

请问,我的想法对不对,有没有更好的方法,请赐教,多谢
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
libi 2004-04-02
  • 打赏
  • 举报
回复
在你的if块里面,无论是与否,都要执行desk.mutexl.Unlock(),何不把它提到if块的外面,这样一来,就可以看得很清楚了,你实际上就是一个临界区,一次只允许一个进程通过,那当然没问题啦。
freemam 2004-04-01
  • 打赏
  • 举报
回复
up

freemam 2004-03-28
  • 打赏
  • 举报
回复
up
jhwh 2004-03-28
  • 打赏
  • 举报
回复
如果不考虑效率,这么做当然可以。如果要考虑效率,还是用semaphore 加 mutex。
wlpwind 2004-03-27
  • 打赏
  • 举报
回复
抢座位问题?什么背景?

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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