<div class="articalTag" id="sina_keyword_ad_area">
<table>
<tbody><tr>
<td class="blog_tag">
<script>
var $tag='杂谈';
var $tag_code='ee947a0a0248cb5941ccb626bf5671d8';
var $r_quote_bligid='4c8f85fd0100y7le';
var $worldcup='0';
var $worldcupball='0';
</script>
<span class="SG_txtb">标签:</span>
<h3><a href="http://search.sina.com.cn/?c=blog&q=%D4%D3%CC%B8&by=tag" target="_blank">杂谈</a></h3>
</td>
<td class="blog_class">
<span class="SG_txtb">分类:</span>
<a target="_blank" href="http://blog.sina.com.cn/s/articlelist_1284474365_3_1.html">技术相关</a>
</td>
</tr>
</tbody></table>
</div>
<!-- 正文开始 -->
<div id="sina_keyword_ad_area2" class="articalContent ">
<p align="left" style="text-align:left;line-height:15.75pt; mso-pagination:widow-orphan">
多线程编程中,常常会遇到这两个概念:Mutex和Semaphore,两者之间区别如下:
有人做过如下类比:
Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个,一般的用法是用于串行化对临界区代码的访问,保证这段代码不会被并行的运行。
Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。
对于N=1的情况,称为binary semaphore,一般的用法是,用于限制对于某一资源的同时访问。在有的系统中Binary semaphore与Mutex是没有差异的
信号量可以设置计数器,而互斥锁只有0和1的关系。
Semaphore semaphore = new Semaphore(1);表示同时访问资源的许可数量只有一个。这个语义可以实现一个Mutex互斥锁:
class semaphore
{
public:
}
classmutex
{
public:
}
</div>
<!-- 正文结束 -->
<div id="share" class="shareUp">
<div class="share SG_txtb">
分享:
<div class="bshare-custom" style="display:inline;margin-left:5px;"><div class="bsPromo bsPromo2"></div><a title="分享到新浪微博" class="bshare-sinaminiblog" href="javascript:void(0);"></a><a title="分享到微信" class="bshare-weixin" href="javascript:void(0);"></a><a title="分享到QQ空间" class="bshare-qzone" href="javascript:void(0);"></a><a title="分享到豆瓣" class="bshare-douban" href="javascript:void(0);"></a><a title="更多平台" class="bshare-more bshare-more-icon more-style-addthis"></a>
</div>
</div>
<div class="up">
<div title="喜欢后让更多人看到" id="dbox_4c8f85fd0100y7le" class="upBox" style="cursor: pointer;">
<p ti_title="互斥锁Mutex与信号量Semaphore的区别" id="dbox2_4c8f85fd0100y7le" class="count" mnum="0">0</p>
<p class="link"><img width="15" height="15" align="absmiddle" src="https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif" class="SG_icon SG_icon34">喜欢</p>
</div>