??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品一区二区三区av,久久久免费观看视频,亚洲人成免费http://www.aygfsteel.com/coolbar/zh-cnSun, 06 Jul 2025 02:04:01 GMTSun, 06 Jul 2025 02:04:01 GMT60创徏Java中的U程?/title><link>http://www.aygfsteel.com/coolbar/archive/2005/08/04/9201.html</link><dc:creator>专注java分布?/dc:creator><author>专注java分布?/author><pubDate>Thu, 04 Aug 2005 06:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/coolbar/archive/2005/08/04/9201.html</guid><wfw:comment>http://www.aygfsteel.com/coolbar/comments/9201.html</wfw:comment><comments>http://www.aygfsteel.com/coolbar/archive/2005/08/04/9201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/coolbar/comments/commentRss/9201.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/coolbar/services/trackbacks/9201.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="BACKGROUND: #f7f7f7; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">转蝲Q{载请保留本信息,本文来自</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><A ><SPAN style="COLOR: #00659c; TEXT-DECORATION: none; mso-bidi-font-size: 12.0pt; text-underline: none">http://www.matrix.org.cn/resource/article/194.html</SPAN></A> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P> <P class=MsoNormal style="BACKGROUND: #f7f7f7; MARGIN: 0cm 0cm 0pt; WORD-BREAK: break-all; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">U程?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Java</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">的一大特性,它可以是l定的指令序列、给定的Ҏ中定义的变量或者一些共享数?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">(</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">cMU的变量</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">)</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">。在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Java</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">中每个线E有自己的堆栈和E序计数器(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">PC</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q,其中堆栈是用来跟t线E的上下文(上下文是当线E执行到某处Ӟ当前的局部变量的|Q而程序计数器则用来跟t当前线E正在执行的指o?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">在通常情况下,一个线E不能访问另外一个线E的堆栈变量Q而且q个U程必须处于如下状态之一Q?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>1.</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">排队状态(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Ready</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q,在用户创Z一个线E以后,q个U程不会立即q行。当U程中的Ҏ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">start()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">被调用时Q这个线E就会进行排队状态,{待调度E序它转入q行状态(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Running</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q。当一个进E被执行后它也可以进行排队状态。如果调度程序允许的话,通过调用Ҏ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">yield()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">可以将q程攑օ排队状态?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>2.</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">q行状?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">(Running)</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q当调度E序?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">CPU</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">的运行时间分配给一个线E,q个U程p入了q行状态开始运行?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>3.</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">{待状态(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Waiting</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q,很多原因都可以导致线E处于等待状态,例如U程执行q程中被暂停Q或者是{待</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">I/O</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">h的完成而进入等待状态?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Java</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">中不同的U程h不同的优先Q高优先U的U程可以安排在低优先U线E之前完成。如果多个线E具有相同的优先U,</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Java</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">会在不同的线E之间切换运行。一个应用程序可以通过使用U程中的Ҏ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">setPriority()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">来设|线E的优先U,使用Ҏ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">getPriority()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">来获得一个线E的优先U?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR><BR></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">U程的生命周?/SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><BR><BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">一个线E的的生命周期可以分成两阶段Q生存(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Alive</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q周期和MQ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Dead</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q周期,其中生存周期又包括运行状态(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Running</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q和{待状态(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Waiting</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q。当创徏一个新U程后,q个U程p入了排队状态(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Ready</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q,当线E中的方?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">start()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">被调用时Q线E就q入生存周期Q这时它的方?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">isAlive()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">始终q回真|直至U程q入M状态?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR><BR></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">U程的实?/SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><BR><BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">有两U方法可以实现线E,一U是扩展</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">java.lang.Thread</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">c,另一U是通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">java.lang.Runnable</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">接口?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>Thread</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">cd装了U程的行为。要创徏一个线E,必须创徏一个从</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Thread</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">cL展出的新cR由于在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Thread</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">cMҎ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">run()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">没有提供M的操作,因此Q在创徏U程时用户必覆盖方?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">run()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">来完成有用的工作。当U程中的Ҏ</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">start()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">被调用时Q方?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">run()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">再被调用。下面的代码是通过扩展</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Thread</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">cL实现U程Q?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>import java.awt.*;<BR>class Sample1{<BR>public static void main(String[] args){<BR>Mythread test1=new Mythread(1);<BR>Mythread test2=new Mythread(2);<BR>test1.start();<BR>test2.start();<BR>}<BR>}<BR>class Mythread extends Thread {<BR>int id;<BR>Mythread(int i)<BR>{ id=i;}<BR>public void run() {<BR>int i=0;<BR>while(id+i==1){<BR>try {sleep(1000);<BR>} catch(InterruptedException e) {}<BR>}<BR>System.out.println(“The id is ?id);<BR>}<BR><BR><BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">通常当用户希望一个类能运行在自己的线E中Q同时也扩展其它某些cȝҎ时Q就需要借助q行</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Runnable</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">接口来实现?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Runnable</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">接口只有一个方?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">run()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">。不Z么时候创Z一个?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Runnable</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">接口的类Q都必须在类中编?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">run()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Ҏ来覆盖接口中?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">run()</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Ҏ。例如下面的代码是通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Runnable</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">接口实现的线E:</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>import java.awt.*;<BR>import java.applet.Applet;<BR>public class Bounce extends Applet implements Runnable{<BR>static int r=30;<BR>static int x=100;<BR>static int y=30;<BR>Thread t; <BR>public void init()<BR>{<BR>t = new Thread(this);<BR>t.start();<BR>}<BR>public void run() <BR>{<BR>int y1=+1; <BR>int i=1;<BR>int sleeptime=10;<BR>while(true)<BR>{<BR>y+=(i*y); <BR>if(y-r<i ||y+r>getSize().height) <BR>y1*=-1;<BR>try{<BR>t.sleep(sleeptime);<BR>}catch(InterruptedException e){ }<BR>}<BR>}<BR>}<BR><BR><BR><BR><BR></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Z么要使用U程?/SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><BR><BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Java</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">中,如果每当一个请求到辑ְ创徏一个新U程Q开销是相当大的。在实际使用中,每个h创徏新线E的服务器在创徏和销毁线E上p的时间和消耗的pȝ资源Q甚臛_能要比花在处理实际的用户h的时间和资源要多得多。除了创建和销毁线E的开销之外Q活动的U程也需要消耗系l资源。如果在一?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">JVM</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">里创建太多的U程Q可能会Dpȝ׃q度消耗内存或</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">?/SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">切换q度</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">?/SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">而导致系l资源不뀂ؓ了防止资源不I服务器应用程序需要一些办法来限制Ml定时刻处理的请求数目,可能减创建和销毁线E的ơ数Q特别是一些资源耗费比较大的U程的创建和销毁,量利用已有对象来进行服务,q就?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">?/SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">池化资源</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">?/SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">技术生的原因?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">U程池主要用来解决线E生命周期开销问题和资源不问题。通过对多个Q务重用线E,U程创徏的开销p分摊C多个d上了Q而且׃在请求到达时U程已经存在Q所以消除了U程创徏所带来的gq。这P可以立即ؓh服务Q应用E序响应更快。另外,通过适当地调整线E池中的U程数目可以防止出现资源不的情c?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR><BR></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">创徏一个线E池</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><BR><BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">一个比较简单的U程池至应包含U程池管理器、工作线E、Q务队列、Q务接口等部分。其中线E池理器(</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">ThreadPool Manager</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Q的作用是创建、销毁ƈ理U程池,工作线E放入线E池中;工作U程是一个可以@环执行Q务的U程Q在没有d时进行等待;d队列的作用是提供一U缓冲机Ӟ没有处理的d攑֜d队列中;d接口是每个Q务必d现的接口Q主要用来规定Q务的入口、Q务执行完后的收尾工作、Q务的执行状态等Q工作线E通过该接口调度Q务的执行。下面的代码实现了创Z个线E池Q以及从U程池中取出U程的操作:</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <BR><BR>public class ThreadPool<BR>{ <BR>private Stack threadpool = new Stack();<BR>private int poolSize;<BR>private int currSize=0;<BR>public void setSize(int n)<BR>{ <BR>poolSize = n;<BR>}<BR>public void run()<BR>{<BR>for(int i=0;i<poolSize;i++)<BR>{ <BR>WorkThread workthread=new WorkThread();<BR>threadpool.push(workthread);<BR>currSize++;<BR>}<BR>}<BR>public synchronized WorkThread getworker( )<BR>{<BR>if (threadpool.empty())<BR>system.out.println(“stack is empty?;<BR>else<BR>try{ return threadpool.pop();<BR>} catch (EmptyStackException e){}<BR>}<BR>}<BR><BR><BR><BR><BR></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">U程池适合应用的场?/SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><BR><BR><BR></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">当一?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">Web</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; LETTER-SPACING: 0.35pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">服务器接受到大量短小U程的请求时Q用线E池技术是非常合适的Q它可以大大减少U程的创建和销毁次敎ͼ提高服务器的工作效率。但如果U程要求的运行时间比较长Q此时线E的q行旉比创建时间要长得多,单靠减少创徏旉对系l效率的提高不明显,此时׃适合应用U程池技术,需要借助其它的技术来提高服务器的服务效率?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: #284b78; LINE-HEIGHT: 150%; FONT-FAMILY: Verdana; LETTER-SPACING: 0.35pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> <o:p></o:p></SPAN></P><img src ="http://www.aygfsteel.com/coolbar/aggbug/9201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/coolbar/" target="_blank">专注java分布?/a> 2005-08-04 14:19 <a href="http://www.aygfsteel.com/coolbar/archive/2005/08/04/9201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在JBuilder中用Jacorb的一些设|?http://www.aygfsteel.com/coolbar/archive/2005/08/03/9128.html专注java分布?/dc:creator>专注java分布?/author>Wed, 03 Aug 2005 06:42:00 GMThttp://www.aygfsteel.com/coolbar/archive/2005/08/03/9128.htmlhttp://www.aygfsteel.com/coolbar/comments/9128.htmlhttp://www.aygfsteel.com/coolbar/archive/2005/08/03/9128.html#Feedback1http://www.aygfsteel.com/coolbar/comments/commentRss/9128.htmlhttp://www.aygfsteel.com/coolbar/services/trackbacks/9128.html    1.安装JacORB
解压~,会生成一个新的目?/SPAN>JacORB。然后将JacORB/lib/jacorb.jar?/SPAN>(classpath) 中。如果你想重新编?/SPAN>JacORBQ也不要忘记?/SPAN>JacORB/class 加入c\径,q且?/SPAN>JacORB/bin加到PathQ在JacORB/bin下有一些实用程序?/SPAN>
重新~译JacORB(以及JacORB附带的例?/SPAN>)需要安?/SPAN>AntQ?/SPAN>Ant是基?/SPAN>XML的制作管理工兗要重新~译JacORBQ只需在安装目?/SPAN>(JacORB) 中输?/SPAN>ant命o卛_。在执行 ant 命o之前Q可以执?/SPAN> ant clean 来清除上ơ编译生的中间文g?BR>2. 配置JacORB
?/SPAN>X:JacORBetc 文g夹下?/SPAN> jacorb_properties.template 文g改名?/SPAN> jacorb.properties Q然后复制到c\径中?/SPAN>
ORBInitRef.NameService 参数
3.JBuilder
中的讄
I.
?/SPAN> JacORB/lib 加入c\?/SPAN>
II. Tools->Enterprise Setup->CORBA->NEW
其中 Path for ORB tools: X:/JacORB/bin
IDL compiler command: idl.bat
Command option for output directory: -d
III. Project->Project Properties->Paths
?/SPAN> JacORB/lib 加入Required Libraries
IV. Project->Project Properties->IDL
其中 IDL compiler: 选择W二步新建的compiler
Additional options: -ami_callback
V.
在需要编译的idl文g上单击鼠标右键,选择Properties,?/SPAN>Process this IDL file 的选项上打?/SPAN>
VI. Rebuild Project
卛_?/SPAN>

注意Q执行程序时必须指定vm参数-Djava.endorsed.dirs="E:\JacORB\lib" (?/SPAN>JBuilder?FONT face=Verdana>Project Properties 里的Runtime Configuration里设|?/SPAN>)



]]>
վ֩ģ壺 Ԫ| | | ұ| | | | | ˮ| | ½| | | | Ƹ| | | | ߮| ƽ| Т| | | | | | | | | ɽ| | ʵ| | ׺| ̫| | | | ԭ| | |