2017-06-10 11 views

答えて

1

私は本当に知っている.Net。一般に、mutexは単純化されたセマフォー・バージョンです。

セマフォーは値で初期化されます。スレッドが保護されたリソースにアクセスするたびに、セマフォー値はデクリメントされ、0に達するとスレッドはアクセスできなくなりますいずれかのスレッドが値をインクリメントするリソースを放棄するまで、リソースはもう使用できません。

ミューテックスは基本的に値1のセマフォです。したがって、スレッドが保護されたリソースにアクセスできるようにし、スレッドがリソースを離れるまでブロックします。

ここをご覧ください:http://niclasw.mbnet.fi/MutexSemaphore.html素晴らしいアナロジーです。

0

mutexは相互排除を提供しますが、process1またはprocess2のいずれかが の作業に進みます。バッファがprocess1で満たされている限り、process2は 待ちになり、逆も同様です。

セマフォは、共有リソースの同時ユーザー数を最大で最大数である に制限します。

関連する問題