⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8_6_2 线程池调度管理的编码实现 - 《多任务下的数据结构与算法》 - 免费试读 - book_csdn_net.htm

📁 主要介绍了多任务下面的一些数据结构和算法,比如树和图的一些遍历
💻 HTM
📖 第 1 页 / 共 4 页
字号:
  <LI><A href="http://blog.csdn.net/group/bookread/" target=_blank>圈子</A> </LI>
  <LI><A href="http://down.csdn.net/app/list.php?tid=502" target=_blank>资源下载</A> 
  </LI>
  <LI><A href="http://bank.csdn.net/" target=_blank><FONT 
  style="FONT-WEIGHT: bold">银行</FONT></A> </LI></UL></DIV>
<SCRIPT type=text/javascript>
     function IsBlank(obj) //查看对象的值是否为空
    {
      if(obj.replace(/^\s+|\s+$/,"")=="")
		  {
		 
		    return true; 
		  }
		  else
		  {
		   return false;
		  }
		  
     }
    function SearchBook_Top()
    {
      if( !IsBlank(document.getElementById("txtTopKey").value))
      {
         var loc;
         var szType;
         if(document.getElementById("listSearchType").value==null)
          {    
            szType=  document.getElementById("listSearchType").options(document.getElementById("listSearchType").selectedIndex).value;  
          }
          else
          {
              szType= document.getElementById("listSearchType").value;
          }
          if(szType==1)
            loc="http://book.csdn.net/book/morelz.aspx?key="+escape(document.getElementById("txtTopKey").value);
          else
             loc="http://club.book.csdn.net/book/s.aspx?key="+escape(document.getElementById("txtTopKey").value);
          
          self.location=loc;
        
      } 
    }
  </SCRIPT>

<DIV id=booknavbottom2>
<DIV class=hotleft><A href="http://book.csdn.net/subject/allbook.htm" 
target=_blank>全部图书</A> <FONT color=red>推荐</FONT>:<A 
href="http://club.book.csdn.net/book/s.aspx?key=asp.net">ASP.NET</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=ajax">Ajax</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=spring">Spring</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=Hibernate">Hibernate</A> <A 
href="http://club.book.csdn.net/book/s.aspx?key=Java">Java</A></DIV>
<DIV class=hotright><SELECT id=listSearchType name=aa> <OPTION value=2 
  selected>书友会</OPTION> <OPTION value=1>连载</OPTION></SELECT><INPUT 
onkeypress=if(event.keyCode==13){SearchBook_Top();} id=txtTopKey maxLength=25><INPUT onclick=SearchBook_Top(); type=button value=搜索 name=提交></DIV></DIV></DIV>
<DIV class=area>
<SCRIPT 
src="8_6_2 线程池调度管理的编码实现 - 《多任务下的数据结构与算法》 - 免费试读 - book_csdn_net.files/BookDetailAd.js" 
type=text/javascript></SCRIPT>

<DIV class=col1>
<DIV class=lineBlue></DIV><!-- title -->
<DIV class=arcTitle>
<H1><A href="http://book.csdn.net/bookfiles/65">多任务下的数据结构与算法 </A></H1>
<DIV style="FONT-SIZE: 15px; TEXT-ALIGN: center"><A 
href="http://book.csdn.net/bookfiles/65/100652567.shtml">8.6.2 线程池调度管理的编码实现 
</A></DIV>
<DIV style="FONT-SIZE: 15px; TEXT-ALIGN: center"><A class=url 
href="http://book.csdn.net/">http://book.csdn.net/</A> 2006-8-14 14:19:00 </DIV>
<DIV class=clear></DIV>
<DIV 
style="BORDER-RIGHT: #0b5f98 1px solid; BORDER-TOP: #0b5f98 1px solid; MARGIN: 0px auto; BORDER-LEFT: #0b5f98 1px solid; WIDTH: 700px; BORDER-BOTTOM: #0b5f98 1px solid">
<DIV 
style="PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FLOAT: left; PADDING-BOTTOM: 1px; WIDTH: 16px; COLOR: white; PADDING-TOP: 1px; BACKGROUND-COLOR: #0b5f98">图书导读 
</DIV>
<DIV 
style="PADDING-LEFT: 2px; FLOAT: right; WIDTH: 670px; LINE-HEIGHT: 16pt; TEXT-ALIGN: left"><!--导读-->
<H1 id=divCurrentNode 
style="PADDING-LEFT: 2px; FONT-SIZE: 12px; WIDTH: 100%; COLOR: #b83507; TEXT-ALIGN: left">当前章节:<A 
href="http://book.csdn.net/bookfiles/65/100652567.shtml"><FONT color=red>8.6.2 
线程池调度管理的编码实现</FONT></A></H1>
<DIV id=divRelateNode style="PADDING-LEFT: 2px">
<DIV style="FLOAT: left; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652564.shtml">6.2.7 
哈希AVL树的编码实现</A></DIV>
<DIV style="FLOAT: right; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652565.shtml">6.2.8 
复合数据结构的分类</A></DIV>
<DIV style="FLOAT: left; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652566.shtml">8.6.1 
线程池调度管理的基本概念</A></DIV>
<DIV style="FLOAT: right; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652568.shtml">9.2.1 
垃圾收集算法简介</A></DIV>
<DIV style="FLOAT: left; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652569.shtml">9.2.2 
用户层垃圾回收算法的实现</A></DIV>
<DIV style="FLOAT: right; WIDTH: 49%">·<A 
href="http://book.csdn.net/bookfiles/65/100652570.shtml">9.2.3 
多任务下的垃圾收集</A></DIV></DIV></DIV></DIV>
<DIV class=clear></DIV></DIV><!-- main -->
<DIV id=main>
<DIV id=text>
<DIV id=csdn_zhaig_ad_yahoo_2></DIV>
<H3 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm"><SPAN 
lang=EN-US>8.6.2</SPAN><SPAN lang=EN-US> &nbsp;</SPAN><SPAN 
style="FONT-FAMILY: 方正准圆简体">线程池调度管理的编码实现</SPAN></H3>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 华康简宋">下面以一个简单的服务器为例来实现上述算法。假设客户端向服务器发送一个“</SPAN><SPAN 
lang=EN-US>Hello!</SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">”字符串,服务器收到后判断一下是不是“</SPAN><SPAN 
lang=EN-US>Hello!</SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">”这个字符串,如果是则发回一个“</SPAN><SPAN lang=EN-US>OK</SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">”字符串给客户端。</SPAN></P>
<P class=MsoNormal><SPAN style="FONT-FAMILY: 华康简宋">下面给出线程池调度管理的编码实现。</SPAN></P>
<P class=4><SPAN lang=EN-US>#define 
&nbsp;MAX_QUEUE_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 096</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">#define 
&nbsp;MAX_LISTEN_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">#define 
&nbsp;MAX_THREADS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
10</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">#define 
&nbsp;DEFAULT_PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8 
080</SPAN></P>
<P class=4><SPAN lang=EN-US>MSGQUEUE&nbsp;&nbsp;&nbsp; *g_pQue</SPAN><SPAN 
style="FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">void ProcessRequest(void *args)</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=4><SPAN lang=EN-US>/**&nbsp;&nbsp; </SPAN><SPAN 
style="FONT-FAMILY: 华康简宋">初始化函数,初始化时会先创建消息队列,并预创建</SPAN><SPAN 
lang=EN-US>MAX_THREADS</SPAN><SPAN style="FONT-FAMILY: 华康简宋">个线程</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @return&nbsp; 
INT</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">CAPI_FAILED</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示失败</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">CAPI_SUCCESS</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示成功</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">*/</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><STRONG><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">INT Init()</SPAN></STRONG></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">{</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INT 
i</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g_pQue = 
MsgQueue_Create(MAX_QUEUE_SIZE)</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( g_pQue == 
NULL )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return CAPI_FAILED</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for ( i = 
0</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">i &lt; MAX_THREADS</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">i++ )</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
_beginthread(ProcessRequest, 0, NULL)</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14.3pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
CAPI_SUCCESS</SPAN><SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14.3pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">}</SPAN></P>
<P class=4 style="LINE-HEIGHT: 14.3pt"><SPAN lang=EN-US>/**&nbsp;&nbsp; 
</SPAN><SPAN style="FONT-FAMILY: 华康简宋">接收请求的处理函数,实现将接收请求的</SPAN><SPAN 
lang=EN-US>SOCKET</SPAN><SPAN style="FONT-FAMILY: 华康简宋">标识符放入到消息队列中</SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 14.3pt"><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @return&nbsp; 
INT</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.2pt">—</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋; LETTER-SPACING: -0.1pt">—</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US 
style="FONT-SIZE: 9pt">CAPI_FAILED</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">表示失败</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">;</SPAN><SPAN 
style="FONT-SIZE: 9pt; FONT-FAMILY: 华康简宋">返回</SPAN><SPAN lang=EN-US 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -