📄 4 种进程或线程同步互斥的控制方法 -- asp酷技术网.htm
字号:
target=_blank><B>网页设计培训</B></A> <A title=九天智能建站
href="http://www.cn9sky.net/" target=_blank><B>九天智能建站</B></A> <A
title=文字广告位四六 href="http://www.aspcool.com/ads.asp"
target=_blank><B>文字广告位四六</B></A> <A title=文字广告位四六
href="http://www.aspcool.com/ads.asp"
target=_blank><B>文字广告位四七</B></A> <A
href="http://www.aspcool.com/ads.asp"
target=_blank><B>全站文字广告每天仅售3元</B></A> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD style="PADDING-TOP: 2px" vAlign=top align=middle bgColor=#ffffff><!--横幅广告位置一开始-->
<DIV id=ad_760x60_top>数据载入中...</DIV>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-2893383714474557";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_link = "0000FF";
google_color_bg = "FFFFFF";
google_color_text = "000000";
google_color_url = "008000";
//--></SCRIPT>
<SCRIPT src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/show_ads.js"
type=text/javascript>
</SCRIPT>
<!--横幅广告位置一结束--></TD></TR></TBODY></TABLE>
<CENTER>
<TABLE height=27 cellSpacing=0 cellPadding=0 width=773 border=0>
<TBODY>
<TR bgColor=#c4ecff>
<TD>
<P align=left><STRONG><FONT color=#6f6fb7> 导航</FONT></STRONG>
>> <A href="http://www.aspcool.com/">ASP酷首页</A>-<A
href="http://www.aspcool.com/download">程序下载</A>-<A
href="http://bbs.aspcool.com/">技术论坛</A>-<A
href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=csharp">c#(csharp)专栏</A>
</P></TD>
<TD align=right></TD></TR></TBODY></TABLE>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=773 border=0>
<TBODY>
<TR>
<TD vAlign=top width=180 bgColor=#6699cc><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#999933
border=0><FORM action=search.asp method=post>
<TBODY>
<TR align=middle>
<TD colSpan=2><INPUT class=formitem size=19 name=article></TD></TR>
<TR>
<TD align=right width="69%"><SELECT name=bbsuser><OPTION
value=全部专栏 selected>全部专栏</OPTION> <OPTION value=asp>ASP专栏</OPTION>
<OPTION value=php>PHP专栏</OPTION> <OPTION value=jsp>JSP专栏</OPTION>
<OPTION value=xml>XML专栏</OPTION> <OPTION value=网页教程>网页教程</OPTION>
<OPTION value=SCRIPT教本>SCRIPT</OPTION> <OPTION
value=图形处理>图形处理</OPTION> <OPTION
value=linux>LINUX专栏</OPTION></SELECT></TD>
<TD vAlign=bottom width="31%"><INPUT type=submit value=go border=0 name=Submit></TD></TR></FORM></TBODY></TABLE><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_01.gif" align=absMiddle> <IMG
height=16 src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/folder_02.gif" width=16
align=absMiddle>技术教程<BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/all.asp"
target=_blank>全部教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=asp"
target=_blank>ASP教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=aspnet"
target=_blank>ASP.NET教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=csharp"
target=_blank>C#.NET教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=vbnet"
target=_blank>VB.NET教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=uml"
target=_blank>UML教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=php"
target=_blank>PHP教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=jsp"
target=_blank>JSP教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=ejb"
target=_blank>EJB教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=xml"
target=_blank>XML教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=linux"
target=_blank>LINUX教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A
href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=Script脚本"
target=_blank>Script脚本</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=网页教程"
target=_blank>网页教程</A><BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=图形处理"
target=_blank>图形处理</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_01.gif" align=absMiddle> <IMG
height=16 src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/folder_02.gif" width=16
align=absMiddle>技术讨论区<BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/" target=_blank>论坛首页</A>
<BR> <IMG src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif"
align=absMiddle border=0><A
href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=12"
target=_blank>ASP论坛</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=10"
target=_blank>ASP.NET论坛</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=15"
target=_blank>Winform论坛</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=14"
target=_blank>源码交流</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=13"
target=_blank>软件工程</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=17"
target=_blank>前沿阵地</A> <BR> <IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=11"
target=_blank>站务讨论</A>
<CENTER><BR>
<TABLE cellSpacing=0 cellPadding=0 align=center bgColor=white border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE><BR></CENTER></TD>
<TD> </TD>
<TD vAlign=top width=589>
<TABLE cellSpacing=1 cellPadding=0 width="100%" bgColor=#ffffcc
border=0><TBODY>
<TR>
<TD width="50%" bgColor=#ffcc99 height=24><IMG
src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/1.gif"> 4 种进程或线程同步互斥的控制方法 <A
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(zhai=window.open('http://www.chaxiu.com/zhai/icollect.asp#t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'zhai','scrollbars=no,width=480,height=420,left=75,top=50,status=no,resizable=yes'));zhai.focus();">收藏此页到茶秀网摘</A>
</TD></TR>
<TR>
<TD colSpan=3>作者: zhangSichu <STRONG><FONT
color=#575757>www.ASPCool.com</FONT></STRONG> 时间:2005-8-23
8:49:56 阅读次数:<STRONG>4335</STRONG> <BR></TD></TR>
<TR>
<TD width="100%" colSpan=3><BR>
<TABLE width=130 align=right bgColor=#cccccc border=0>
<TBODY>
<TR>
<TD><!--广告开始-->
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-2893383714474557";
google_ad_width = 125;
google_ad_height = 125;
google_ad_format = "125x125_as_rimg";
google_cpa_choice = "CAAQufqujAIaCK1ddY06o61TKM_M93M";
google_ad_channel = "4004213044";
//--></SCRIPT>
<SCRIPT src="4 种进程或线程同步互斥的控制方法 -- ASP酷技术网.files/show_ads.js"
type=text/javascript>
</SCRIPT>
<!--广告结束--></TD></TR></TBODY></TABLE>
很想整理一下自己对进程线程同步互斥的理解。正巧周六一个刚刚回到学校的同学请客吃饭。在吃饭的过程中,有两个同学,为了一个问题争论的面红耳赤。一个认为.Net下的进程线程控制模型更加合理。一个认为Java下的线程池策略比.Net的好。大家的话题一下转到了进程线程同步互斥的控制问题上。回到家,想了想就写了这个东东。
<BR> 现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种方法组合优化就有了.Net和Java下灵活多变的,编程简便的线程进程控制手段。
<BR> 这4种方法具体定义如下 在《操作系统教程》ISBN 7-5053-6193-7
一书中可以找到更加详细的解释
<BR> 1临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。
<BR> 2互斥量:为协调共同对一个共享资源的单独访问而设计的。
<BR> 3信号量:为控制一个具有有限数量用户资源而设计。 <BR> 4事
件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 <BR>
<BR> 临界区(Critical Section)
<BR> 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。
<BR> 临界区包含两个操作原语:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -