作者julietgirl76 (小涵)
看板C_Sharp
标题Re: [问题] mutex跟lock有甚麽不同
时间Fri Oct 15 08:47:15 2010
不好意思下面是我的程式码,请多多指教
mut.WaitOne();
if (ticketTotalNumber > 0)
{
ticketTotalNumber--;
showSellTicket(name, showSellTextBox);
}
mut.ReleaseMutex();
-------以上是mutex,以下是lock--------
lock (this)
{
if (ticketTotalNumber > 0)
{
ticketTotalNumber--;
showSellTicket(name, showSellTextBox);
}
}
※ 引述《julietgirl76 (小涵)》之铭言:
: 大家好
: 我在网路上有看到一些资料
: 知道mutex是可以跨process而lock不可以
: 但是效用是一样的,都是只能让单一执行绪进入
: 可是我今天在测试的时候发现一个问题
: 就是我设定五个thread代表五个小朋友去抢85颗糖
: 一次只能有一个小朋友拿到一颗
: 利用lock的时候虽然每次重新执行结果都不一样
: 但是感觉会有顺序性(用a b c d e代表五个小朋友),比如说都是
: aedbc aedbc aedbc
: 但是如果用mutex的话就不会,会变成
: abccdebedcaa..类似这样
: 不知道有没有人可以点一下呢
: 谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.22.46.91
1F:→ deuter:lock实际上是Monitor, 所以这问题应该是Mutex和Monitor 10/15 14:54
3F:推 horngsh:D大说得对.lock就是用Monitor class. 10/16 14:37