b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

releasemutex_mutex同步_mutex代替event(3)

电脑杂谈  发布时间:2017-01-01 22:00:38  来源:网络整理

因此,谁获取了mutex谁负责调用ReleaseMutex,否则其它进程/线程无法再次拥有它。

CreateMutex后WaitFor.../ReleaseMutex相当于lock/unlock操作。

这个解释核心是,A进程WaitFor到hMutex之后,A就是拥有者,就是owner。B进程WaitFor到hMutex之后,B就是拥有者,就是owner。必须由该owner来ReleaseMutex(hMutex);

任何进程通过CreateMutex(NULL,0,“ReadWrite11”)都可以WaitFor并ReleaseMutex,不限于创建进程。

创建进程如果CreateMutex如果第2个参数是true,那么就是默认的当前的拥有者,就是owner。否则该锁对任何进程是开放的,就是任何进程都可以Waitfor成为有者,就是owner。

举个生活中的例子。releasemutex某班A同学买了一把锁用于锁书橱,这把锁只有一个钥匙。他可以立即锁上(CreateMutex如果第2个参数是true),成为当时的owner(钥匙保管人)。也可以不立即锁上(CreateMutex如果第2个参数是false),把锁和钥匙放在教室里,任何人需要就可以使用。

此后,谁锁上,钥匙就在谁手上,成为owner,必须由此人开锁(Release),交出钥匙,其它人才可以再锁上,并成为owner。

例子举得很到位,不过还有点问题请指教一下。

就是说第一个waitfor的为owner,那么如果owner不释放的话,那么其他waitfor的进程装会永远处于等待状态是吧?

------解决方案--------------------

引用:Quote: 引用:

Quote: 引用:

同名的mutex最多只允许一个thread获取owner。所有不管多少进程或线程在等待同一个mutex,只有一个允许运行。

按你的例子:一个进程(假设主进程)CreateMutex(NULL,TRUE,“ReadWrite11”)成功,GetLastError==0,那么返回的handle已经被这个进程拥有了,其它进程(不管多少,假设是子进程)同样CreateMutex(NULL,TRUE,“ReadWrite11”),如果成功返回了handle,并且GetLastError==ERROR_ALREADY_EXISTS,这个进程并不拥有这个mutex,但是你可以用wait系列函数等待拥有者释放它。此时主进程调用ReleaseMutex释放拥有权,等待的某个进程可以获取这个mutex,如果主进程又一次希望拥有这个mutex,那么主进程可以用wait系列函数等待拥有这个mutex的子进程调用ReleaseMutex。

因此,谁获取了mutex谁负责调用ReleaseMutex,否则其它进程/线程无法再次拥有它。

CreateMutex后WaitFor.../ReleaseMutex相当于lock/unlock操作。 c_a_3();

这个解释核心是,A进程WaitFor到hMutex之后,A就是拥有者,就是owner。B进程WaitFor到hMutex之后,B就是拥有者,就是owner。必须由该owner来ReleaseMutex(hMutex);

任何进程通过CreateMutex(NULL,0,“ReadWrite11”)都可以WaitFor并ReleaseMutex,不限于创建进程。

创建进程如果CreateMutex如果第2个参数是true,那么就是默认的当前的拥有者,就是owner。releasemutex否则该锁对任何进程是开放的,就是任何进程都可以Waitfor成为有者,就是owner。

举个生活中的例子。某班A同学买了一把锁用于锁书橱,这把锁只有一个钥匙。他可以立即锁上(CreateMutex如果第2个参数是true),成为当时的owner(钥匙保管人)。也可以不立即锁上(CreateMutex如果第2个参数是false),把锁和钥匙放在教室里,任何人需要就可以使用。

此后,谁锁上,钥匙就在谁手上,成为owner,必须由此人开锁(Release),交出钥匙,其它人才可以再锁上,并成为owner。

例子举得很到位,不过还有点问题请指教一下。

就是说第一个waitfor的为owner,那么如果owner不释放的话,那么其他waitfor的进程装会永远处于等待状态是吧?

如果owner所程结束,这个mutex会自动释放。除此之外除非拥有的线程调用ReleaseMutex,否则其它线程必须等待,waitfor...不会返回


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-24256-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘昌兰
      刘昌兰

      强烈建议大家更新后抹除所有数据

    • 徐艺萌
      徐艺萌

      加油加油

    热点图片
    拼命载入中...