锘??xml version="1.0" encoding="utf-8" standalone="yes"?>丝袜美腿一区二区三区,亚洲欧洲精品一区二区,在线播放一区二区三区http://www.aygfsteel.com/JobHu/zh-cnWed, 18 Jun 2025 11:32:39 GMTWed, 18 Jun 2025 11:32:39 GMT60瀹炵幇涓涓爤,浣垮叾push,pop,min(鍙栧緱鏍堜腑鐨勬渶灝忓厓绱?鍧囦負O(1)http://www.aygfsteel.com/JobHu/archive/2007/07/18/131148.htmlJob HuJob HuWed, 18 Jul 2007 12:57:00 GMThttp://www.aygfsteel.com/JobHu/archive/2007/07/18/131148.htmlhttp://www.aygfsteel.com/JobHu/comments/131148.htmlhttp://www.aygfsteel.com/JobHu/archive/2007/07/18/131148.html#Feedback0http://www.aygfsteel.com/JobHu/comments/commentRss/131148.htmlhttp://www.aygfsteel.com/JobHu/services/trackbacks/131148.html
鎴戠殑瑙?br>
interface IntStack
{
    
int pop();
    
void push(int i);
    
int get();
}


class MinStack
{
    
//store all the element
    private IntStack elemStack = new IntStack();
    
    
//store current and historical smallest element
    private IntStack minStack = new IntStack();
    
    
public void push(int i)
    
{
        elemStack.push(i);
        
        
int currentMin = minStack.get();
        
if(i <= currentMin) minStack.push(i);
    }

    
    
public int pop()
    
{
        
int result = elemStack.pop();
        
if(result == minStack.get()) minStack.pop();
        
return result;
    }

    
    
public int getMinElem()
    
{
        
return minStack.get();
    }

}


Job Hu 2007-07-18 20:57 鍙戣〃璇勮
]]>
浜屽弶鎺掑簭鏍戝彉涓哄弻鍚戦摼琛?/title><link>http://www.aygfsteel.com/JobHu/archive/2007/07/18/131146.html</link><dc:creator>Job Hu</dc:creator><author>Job Hu</author><pubDate>Wed, 18 Jul 2007 12:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/JobHu/archive/2007/07/18/131146.html</guid><wfw:comment>http://www.aygfsteel.com/JobHu/comments/131146.html</wfw:comment><comments>http://www.aygfsteel.com/JobHu/archive/2007/07/18/131146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JobHu/comments/commentRss/131146.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JobHu/services/trackbacks/131146.html</trackback:ping><description><![CDATA[<p>鎶婁竴涓簩鍙夋帓搴忔爲(涔熻涓嶅彨榪欎釜)鍙樹負閫掑鐨勫弻鍚戦摼琛?涓嶈兘澶熺敓鎴愰澶栫殑緇撶偣.<br>eg 6<br>       / \<br>      4   8<br>     / \ / \<br>    3  5 7  9</p> <p>3=4=5=6=7=8=9<br><br>鎴戠殑瑙?<br></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Node<br><img id=Codehighlighter1_11_936_Open_Image onclick="this.style.display='none'; Codehighlighter1_11_936_Open_Text.style.display='none'; Codehighlighter1_11_936_Closed_Image.style.display='inline'; Codehighlighter1_11_936_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_11_936_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_11_936_Closed_Text.style.display='none'; Codehighlighter1_11_936_Open_Image.style.display='inline'; Codehighlighter1_11_936_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_11_936_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_11_936_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Node left;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Node right;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> Node getLinkListTail(Node head)<br><img id=Codehighlighter1_103_239_Open_Image onclick="this.style.display='none'; Codehighlighter1_103_239_Open_Text.style.display='none'; Codehighlighter1_103_239_Closed_Image.style.display='inline'; Codehighlighter1_103_239_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_103_239_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_103_239_Closed_Text.style.display='none'; Codehighlighter1_103_239_Open_Image.style.display='inline'; Codehighlighter1_103_239_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_103_239_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_103_239_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        Node result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> head;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(result</span><span style="COLOR: #000000">==</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(result.right</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_189_219_Open_Image onclick="this.style.display='none'; Codehighlighter1_189_219_Open_Text.style.display='none'; Codehighlighter1_189_219_Closed_Image.style.display='inline'; Codehighlighter1_189_219_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_189_219_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_189_219_Closed_Text.style.display='none'; Codehighlighter1_189_219_Open_Image.style.display='inline'; Codehighlighter1_189_219_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_189_219_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_189_219_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> result.right;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> result;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> Node flatten(Node root)<br><img id=Codehighlighter1_283_934_Open_Image onclick="this.style.display='none'; Codehighlighter1_283_934_Open_Text.style.display='none'; Codehighlighter1_283_934_Closed_Image.style.display='inline'; Codehighlighter1_283_934_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_283_934_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_283_934_Closed_Text.style.display='none'; Codehighlighter1_283_934_Open_Image.style.display='inline'; Codehighlighter1_283_934_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_283_934_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_283_934_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(root</span><span style="COLOR: #000000">==</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        Node result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> root;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> A leaf node</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(root.left</span><span style="COLOR: #000000">==</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000">root.right</span><span style="COLOR: #000000">==</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> root;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">divide-and-conquer</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        Node leftSubTreeLinkListHead </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> flatten(root.left);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        Node rightSubTreeLinkListHead </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> flatten(root.right);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">merge</span><span style="COLOR: #008000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        Node leftSubTreeLinkListTail </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> getLinkListTail(leftSubTreeLinkListHead);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        root.left </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> leftSubTreeLinkListTail;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        root.right </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> rightSubTreeLinkListHead;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(leftSubTreeLinkListHead</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) <br><img id=Codehighlighter1_754_836_Open_Image onclick="this.style.display='none'; Codehighlighter1_754_836_Open_Text.style.display='none'; Codehighlighter1_754_836_Closed_Image.style.display='inline'; Codehighlighter1_754_836_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_754_836_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_754_836_Closed_Text.style.display='none'; Codehighlighter1_754_836_Open_Image.style.display='inline'; Codehighlighter1_754_836_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_754_836_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_754_836_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            result </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> leftSubTreeLinkListHead;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            leftSubTreeLinkListTail.right </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> root;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(rightSubTreeLinkListHead</span><span style="COLOR: #000000">!=</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) rightSubTreeLinkListHead.left </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> root;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> result;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span></div> <img src ="http://www.aygfsteel.com/JobHu/aggbug/131146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JobHu/" target="_blank">Job Hu</a> 2007-07-18 20:37 <a href="http://www.aygfsteel.com/JobHu/archive/2007/07/18/131146.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Byte in Javahttp://www.aygfsteel.com/JobHu/archive/2007/07/17/130942.htmlJob HuJob HuTue, 17 Jul 2007 15:22:00 GMThttp://www.aygfsteel.com/JobHu/archive/2007/07/17/130942.htmlhttp://www.aygfsteel.com/JobHu/comments/130942.htmlhttp://www.aygfsteel.com/JobHu/archive/2007/07/17/130942.html#Feedback0http://www.aygfsteel.com/JobHu/comments/commentRss/130942.htmlhttp://www.aygfsteel.com/JobHu/services/trackbacks/130942.html
public class ByteTest
{
    
public static void main(String[] args)
    
{
        
byte b;
        
byte c;
        
//b = 255; //Cannot convert from int to byte
        
//b = 0xFF; //Cannot convert from int to byte
        b = 127;
        c 
= 0x7F;
        
if(b == c) System.out.println("b == c");
        
if(127 == 0x7F) System.out.println("127 == 0x7F");
        
        b 
= -128;
        
//c = 0x80; //Cannot convert from int to byte
        c = (byte)0x80;
        
if(b == c) System.out.println("b == c");
        
if(-128 == 0x80) System.out.println("-128 == 0x80");
        
if(128 == 0x80) System.out.println("128 == 0x80"); 
        
        c 
= (byte)0x80;
        
if(128 == c) System.out.println("128 == c");
        
if(-128 == c) System.out.println("-128 == c");
        
if(128 == (c&0xFF)) System.out.println("128 == (c&0xFF)");
    }

}

杈撳嚭:
b == c
127 == 0x7F
b == c
128 == 0x80
-128 == c
128 == (c&0xFF)

Job Hu 2007-07-17 23:22 鍙戣〃璇勮
]]>
Java Language Keywordshttp://www.aygfsteel.com/JobHu/archive/2007/07/09/129158.htmlJob HuJob HuMon, 09 Jul 2007 14:38:00 GMThttp://www.aygfsteel.com/JobHu/archive/2007/07/09/129158.htmlhttp://www.aygfsteel.com/JobHu/comments/129158.htmlhttp://www.aygfsteel.com/JobHu/archive/2007/07/09/129158.html#Feedback1http://www.aygfsteel.com/JobHu/comments/commentRss/129158.htmlhttp://www.aygfsteel.com/JobHu/services/trackbacks/129158.htmlconst and goto are reserved, even though they are not currently used. true, false, and null might seem like keywords, but they are actually literals; you cannot use them as identifiers in your programs.
abstract continue for new switch
assert*** default goto* package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum**** instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp** volatile
const* float native super while


Job Hu 2007-07-09 22:38 鍙戣〃璇勮
]]>
Tomcat絎旇錛堜笁錛?/title><link>http://www.aygfsteel.com/JobHu/archive/2007/05/30/121017.html</link><dc:creator>Job Hu</dc:creator><author>Job Hu</author><pubDate>Wed, 30 May 2007 14:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/JobHu/archive/2007/05/30/121017.html</guid><wfw:comment>http://www.aygfsteel.com/JobHu/comments/121017.html</wfw:comment><comments>http://www.aygfsteel.com/JobHu/archive/2007/05/30/121017.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JobHu/comments/commentRss/121017.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JobHu/services/trackbacks/121017.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-ascii-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鏉ョ湅鐪?/span><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: EN-US; mso-font-kerning: 1.0pt; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 瀹嬩綋">ContainerBase</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-ascii-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鐨?/span><span lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-ansi-language: EN-US; mso-font-kerning: 1.0pt; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 瀹嬩綋">start</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: EN-US; mso-ascii-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">鏂規硶錛?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img id=Codehighlighter1_59_1941_Open_Image onclick="this.style.display='none'; Codehighlighter1_59_1941_Open_Text.style.display='none'; Codehighlighter1_59_1941_Closed_Image.style.display='inline'; Codehighlighter1_59_1941_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_59_1941_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_59_1941_Closed_Text.style.display='none'; Codehighlighter1_59_1941_Open_Image.style.display='inline'; Codehighlighter1_59_1941_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">synchronized</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> start() </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> LifecycleException </span><span id=Codehighlighter1_59_1941_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_59_1941_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">濡傛灉Container宸茬粡澶勪簬start鐘舵侊紝鐩存帴榪斿洖</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #008000"><img id=Codehighlighter1_121_270_Open_Image onclick="this.style.display='none'; Codehighlighter1_121_270_Open_Text.style.display='none'; Codehighlighter1_121_270_Closed_Image.style.display='inline'; Codehighlighter1_121_270_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_121_270_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_121_270_Closed_Text.style.display='none'; Codehighlighter1_121_270_Open_Image.style.display='inline'; Codehighlighter1_121_270_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (started) </span><span id=Codehighlighter1_121_270_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_121_270_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(log.isInfoEnabled())<br></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                log.info(sm.getString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">containerBase.alreadyStarted</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, logName()));<br></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Notify our interested LifecycleListeners</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        lifecycle.fireLifecycleEvent(BEFORE_START_EVENT, </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        started </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Start our subordinate components, if any</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">16</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ((loader </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> (loader </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle))<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) loader).start();<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        logger </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        getLogger();<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ((logger </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> (logger </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle))<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) logger).start();<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鐢ㄦ潵綆$悊session</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">23</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ((manager </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> (manager </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle))<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) manager).start();<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鐪嬪悕瀛楀氨鐭ラ亾鏄共浠涔堢殑錛屼笉榪囩爺絀墮泦緹ょ殑浼樺厛綰у緢浣?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">26</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ((cluster </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> (cluster </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle))<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) cluster).start();<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鐢ㄦ潵榪涜璁塊棶鎺у埗錛屾垨鑰呮潈闄愭帶鍒剁殑</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">29</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ((realm </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> (realm </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle))<br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) realm).start();<br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鍜孞NDI鐩稿叧</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">32</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> ((resources </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> (resources </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle))<br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) resources).start();<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鍚姩鎵鏈夊瓙container</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">36</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        Container children[] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> findChildren();<br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img id=Codehighlighter1_1358_1469_Open_Image onclick="this.style.display='none'; Codehighlighter1_1358_1469_Open_Text.style.display='none'; Codehighlighter1_1358_1469_Closed_Image.style.display='inline'; Codehighlighter1_1358_1469_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1358_1469_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1358_1469_Closed_Text.style.display='none'; Codehighlighter1_1358_1469_Open_Image.style.display='inline'; Codehighlighter1_1358_1469_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> children.length; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">) </span><span id=Codehighlighter1_1358_1469_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1358_1469_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (children[i] </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle)<br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                ((Lifecycle) children[i]).start();<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鍚姩Container鍐呴儴鎸佹湁鐨刾ipeline瀵硅薄錛孋ontainer瀵筆ipeline鎺ュ彛鐨勫疄鐜板氨鏄氳繃璋冪敤榪欎釜鍐呴儴鎸佹湁鐨凱ipeline瀵硅薄</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">43</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (pipeline </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> Lifecycle)<br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            ((Lifecycle) pipeline).start();<br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Notify our interested LifecycleListeners</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">47</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        lifecycle.fireLifecycleEvent(START_EVENT, </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 娉ㄩ噴璇磋繖涓嚱鏁扮敤鏉heck session鏄惁榪囨湡錛屼絾鐪嬬殑涓嶆槸澶噦</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">50</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        threadStart();<br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Notify our interested LifecycleListeners</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">53</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        lifecycle.fireLifecycleEvent(AFTER_START_EVENT, </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span></div> </span>  <p><span>鎵鏈夊拰</span><span>cluster</span><span>銆?/span><span>realm</span><span>鐩稿叧閮芥斁鍦ㄦ渶鍚庢潵鐮旂┒浜嗭紝涓嶇鎬庝箞鏍峰厛鎶?/span><span>tomcat</span><span>濡備綍澶勭悊</span><span>request</span><span>鐨勬暣涓繃紼嬩覆璧鋒潵瀵圭幇鍦ㄧ殑鎴戞潵璇存槸鏈閲嶈鐨勩傚彟澶栬繕鏈?/span><span>Tomcat</span><span>涓殑寰堝閮ㄤ歡閮界敤鍒頒簡</span><span>JMX API</span><span>錛屽嵆</span><span>SNMP</span><span>鐨?/span><span>Java</span><span>瀹炵幇鏉ヨ繘琛屾ц兘媯嫻嬪拰綆$悊錛岃繖涓篃浼氭斁鍦ㄦ渶鍚庣爺絀躲?/span></p> <p><span>ContainerBase</span><span>灝辯湅榪欎箞澶氫簡錛屼笅闈㈡潵鐪嬬湅</span><span>StandardEngine</span><span>榪欎釜綾匯傞櫎鍘誨拰</span><span>cluster</span><span>銆?/span><span>realm</span><span>銆?/span><span>JMX</span><span>鐩稿叧鐨勬柟娉曞悗錛?/span><span>StanderdEngine</span><span>鍓╀笅鐨勬柟娉曞氨寰堝緢灝戜簡銆?/span></p> <p><span>StandardEngine</span><span>鏈変竴涓?/span><span>Service</span><span>綾誨瀷鐨勬垚鍛樸?/span><span>Java doc</span><span>涓寚鍑?/span><span>Service</span><span>灝辨槸鐢卞緢澶氬叡浜悓涓涓?/span><span>Container</span><span>鐨?/span><span>Connector</span><span>緇勬垚銆備竴涓?/span><span>Service</span><span>瀵瑰簲浜庝竴涓?/span><span>Container</span><span>錛屾潵鑷繖涓?/span><span>Service</span><span>鐨勪換浣曚竴涓?/span><span>Connector</span><span>鐨?/span><span>request</span><span>閮戒細鐢卞叾瀵瑰簲鐨?/span><span>Container</span><span>榪涜澶勭悊銆傜湅鍒扮幇鍦ㄧ殑鎰熻灝辨槸</span><span>Connector</span><span>瀵?/span><span>Container</span><span>鎻愪緵</span><span>request</span><span>瀵硅薄錛屽茍鎺ュ彈</span><span>Container</span><span>榪斿洖鐨?/span><span>response</span><span>瀵硅薄銆傚湪</span><span>Tomcat</span><span>涓湁寰堝綾誨埆閮借鐢ㄦ潵浣撶幇鐜?/span><span>request</span><span>鎴栬?/span><span>response</span><span>錛屼緥濡?/span><span>org.apache.catalina.connector .Request</span><span>灝辨槸</span><span>Coyote request</span><span>鐨勪竴涓?/span><span>wrapper</span><span>綾伙紝</span><span>Coyote</span><span>榪欎釜</span><span>framework</span><span>甯姪灝佽浜嗗簳灞傜殑緗戠粶澶嶆潅鎬э紝鍚戜笂鎻愪緵涓涓粺涓鐨勬帴鍙c傛垜鎯?/span><span>tomcat</span><span>鏃㈣兘澶熸垚涓轟竴涓?/span><span>standalone</span><span>鐨?/span><span>http</span><span>銆?/span><span>jsp/Servlet</span><span>鏈嶅姟鍣紝涔熻兘澶熷悓</span><span>apache http server</span><span>闆嗘垚錛屽緢鍙兘灝辨槸渚濊禆浜?/span><span>Coyote</span><span>鎻愪緵鐨勭粺涓鎺ュ彛銆?/span></p> <span>鍦ㄦ瀯閫犲嚱鏁頒腑浼氬皢</span><span>StandardEngine</span><span>榪欎釜</span><span>Pipeline</span><span>鐨勬渶鍚庝竴涓?/span><span>Valve</span><span>錛屽嵆</span><span>Basic</span><span>璁劇疆涓?/span><span>StandardEngineValve</span><span>銆傛潵鐪嬬湅</span><span>StandardEnginValue</span><span>鐨?/span><span>invoke</span><span>鏂規硶</span><br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> invoke(Request request, Response response)<br></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img id=Codehighlighter1_106_578_Open_Image onclick="this.style.display='none'; Codehighlighter1_106_578_Open_Text.style.display='none'; Codehighlighter1_106_578_Closed_Image.style.display='inline'; Codehighlighter1_106_578_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_106_578_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_106_578_Closed_Text.style.display='none'; Codehighlighter1_106_578_Open_Image.style.display='inline'; Codehighlighter1_106_578_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>        </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> IOException, ServletException </span><span id=Codehighlighter1_106_578_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_106_578_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Select the Host to be used for this Request</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        Host host </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> request.getHost();<br></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img id=Codehighlighter1_229_456_Open_Image onclick="this.style.display='none'; Codehighlighter1_229_456_Open_Text.style.display='none'; Codehighlighter1_229_456_Closed_Image.style.display='inline'; Codehighlighter1_229_456_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_229_456_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_229_456_Closed_Text.style.display='none'; Codehighlighter1_229_456_Open_Image.style.display='inline'; Codehighlighter1_229_456_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (host </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span id=Codehighlighter1_229_456_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_229_456_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            response.sendError<br></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                (HttpServletResponse.SC_BAD_REQUEST,<br></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                 sm.getString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">standardEngine.noHost</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, <br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                              request.getServerName()));<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Ask this Host to process this request</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #008000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        host.getPipeline().getFirst().invoke(request, response);<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span></div>   <p><span>鍙互鐪嬪嚭鍦ㄥ鐞嗗埌</span><span>StandardEngine</span><span>榪欎釜</span><span>Pipeline</span><span>鐨勬渶鍚庝竴涓?/span><span>Valve</span><span>鏃訛紝浼氭牴鎹綋鍓?/span><span>request</span><span>鎵鎸囧畾鐨?/span><span>Host</span><span>錛屽皢褰撳墠鐨?/span><span>request</span><span>鍜?/span><span>response</span><span>浼犻掔粰璇?/span><span>Host</span><span>榪欎釜</span><span>Pipeline</span><span>鐨勭涓涓?/span><span>Valve</span><span>榪涜澶勭悊銆?/span></p> <p><span>鎴戞兂</span><span>Tomcat</span><span>涓殑</span><span>Engine</span><span>銆?/span><span>Host</span><span>銆?/span><span>Context</span><span>銆?/span><span>Wrapper</span><span>澶勭悊</span><span>request</span><span>鐢熸垚</span><span>response</span><span>鐨勮繃紼嬪ぇ姒傛槸榪欐牱鐨勶細</span></p> <span>Engine</span><span>鍦ㄦ敹鍒?/span><span>request</span><span>鍚庡湪鍏?/span><span>Pipeline</span><span>涓殑姣忎竴涓?/span><span>Valve</span><span>瀵?/span><span>request</span><span>榪涜澶勭悊錛屼篃鍙兘浼氱敓鎴?/span><span>response</span><span>鐨勬煇浜涢儴鍒嗭紝鍦ㄦ渶鍚庝竴涓?/span><span>Valve</span><span>涓皢</span><span>request</span><span>鍜?/span><span>response</span><span>浼犵粰涓嬩竴綰?/span><span>Container</span><span>鍗?/span><span>Host</span><span>鐨勭涓涓?/span><span>Valve</span><span>銆?/span><span>Host</span><span>閲嶅鍚屾牱榪囩▼錛岀戶緇紶閫掔粰</span><span>Context</span><span>錛?/span><span>Context</span><span>鍐嶄紶閫掔粰</span><span>Wrapper</span><span>銆傜敱浜?/span><span>Wrapper</span><span>浠h〃鐨勬槸</span><span>Servlet</span><span>瀵硅薄錛屽洜姝ゅ湪</span><span>Wrapper</span><span>澶勬墍鏈夌殑澶勭悊閮界粨鏉熶簡錛?/span><span>response</span><span>瀵硅薄鐢熸垚瀹屾瘯銆傚綋鐒朵簡錛屽鏋滃湪鏌愪竴綰т腑鏃犳硶鎵懼埌</span><span>request</span><span>瑕佹眰鐨勪笅涓綰у璞★紝鍒欐暣涓鐞嗚繃紼嬩篃浼氱珛鍗崇粨鏉熴?/span> <img src ="http://www.aygfsteel.com/JobHu/aggbug/121017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JobHu/" target="_blank">Job Hu</a> 2007-05-30 22:58 <a href="http://www.aygfsteel.com/JobHu/archive/2007/05/30/121017.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Tomcat絎旇錛堜簩錛?/title><link>http://www.aygfsteel.com/JobHu/archive/2007/05/28/120373.html</link><dc:creator>Job Hu</dc:creator><author>Job Hu</author><pubDate>Sun, 27 May 2007 23:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/JobHu/archive/2007/05/28/120373.html</guid><wfw:comment>http://www.aygfsteel.com/JobHu/comments/120373.html</wfw:comment><comments>http://www.aygfsteel.com/JobHu/archive/2007/05/28/120373.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JobHu/comments/commentRss/120373.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JobHu/services/trackbacks/120373.html</trackback:ping><description><![CDATA[<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-layout-grid-align: none"><span lang=EN-US>ContainerBase</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵?/span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鎺ュ彛鐨勫疄鐜板畬鍏ㄤ緷璧栦簬鍏跺唴閮ㄧ殑涓涓?/span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">綾誨瀷鐨勬垚鍛?/span><span lang=EN-US>pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">錛堝疄鐜扮被涓?/span><span lang=EN-US>StandardPipelin</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">e</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">錛夈?br>    </span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鍦?/span><span lang=EN-US>Tomcat</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鐨?/span><span lang=EN-US>doc</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">涓繖鏍蜂粙緇?/span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鎺ュ彛錛氳鎺ュ彛鐨?/span><span lang=EN-US>invoke</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">錛堬級鏂規硶琚皟鐢ㄦ椂錛屽皢浼氬紩鍙戜竴緋誨垪</span><span lang=EN-US>Value</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵硅薄鐨勫簭鍒楄皟鐢ㄣ傝姹備竴涓?/span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">涓殑瀛樺湪涓涓?/span><span lang=EN-US>Value</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵硅薄錛堝涓烘渶鍚庝竴涓?/span><span lang=EN-US>Value</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵硅薄錛夊畬鎴愬</span><span lang=EN-US>request</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鐨勫鐞嗭紝騫剁敓鎴愮浉搴旂殑</span><span lang=EN-US>response</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">錛岃屼笉鑳借瘯鍥懼皢</span><span lang=EN-US>Request</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">緇х畫浼犻掔粰鍏跺畠</span><span lang=EN-US>Value</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵硅薄錛堣繖涓?/span><span lang=EN-US>Value</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵硅薄琚О涓?/span><span lang=EN-US>Basic</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">錛夈傞氬父錛屾瘡涓?/span><span lang=EN-US>Container</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀵硅薄閮芥寔鏈変竴涓?/span><span lang=EN-US>Pipline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">綾誨瀷(瀹為檯涓婁負StandardPipeline)鐨勬垚鍛樸傚湪</span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鐨?/span><span lang=EN-US>doc</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">涓紝鏂規硶</span><span lang=EN-US>getBasic</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">錛?/span><span lang=EN-US>getFirst</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">涓や釜鏂規硶鐨?/span><span lang=EN-US>Method Summary</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">瀹屽叏涓鏍鳳紝</span><span lang=EN-US>Apache</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ansi-language: ZH-CN">鐨勭墰浜轟滑涔熶笉鑳藉厤淇楀晩銆?/span></p> <p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-layout-grid-align: none"><span lang=EN-US>StandardPipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">闄ゅ疄鐜?/span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鎺ュ彛澶栵紝涔熷疄鐜頒簡</span><span lang=EN-US>Lifecycle</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鎺ュ彛銆傝繖涓被鐨?/span><span lang=EN-US>start</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鍜?/span><span lang=EN-US>stop</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鏂規硶錛岄鍏堟鏌ユ槸鍚﹀凡緇忚</span><span lang=EN-US>start</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鎴?/span><span lang=EN-US>stop</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">錛屽鏋滄槸鍒欎細鎶涘嚭涓涓?/span><span lang=EN-US>LifecycleException</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鐨勫紓甯革紝鍚﹀垯渚?/span><span lang=EN-US>fire</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鍜岀敓鍛芥湡鏀瑰彉鐨勭浉鍏充簨浠訛紝騫惰皟鐢ㄥ叾鍐呴儴</span><span lang=EN-US>valve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">瀵硅薄錛堝鏋滆</span><span lang=EN-US>valve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">瀵硅薄涔熷疄鐜頒簡</span><span lang=EN-US>Lifecycle</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鎺ュ彛錛夌殑</span><span lang=EN-US>start</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鍜?/span><span lang=EN-US>stop</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鏂規硶銆?/span><span lang=EN-US>addValve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鏂規硶鐢ㄦ潵鍚?/span><span lang=EN-US>StandardPipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">涓姞鍏?/span><span lang=EN-US>Valve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">瀵硅薄錛屾柊鍔犲叆鐨?/span><span lang=EN-US>Value</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">瀵硅薄琚斁鍦ㄤ竴涓彨鍋?/span><span lang=EN-US>Basic</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鐨勭壒孌?/span><span lang=EN-US>Valve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">錛堝氨鏄竴涓?/span><span lang=EN-US>Pipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鐨勬渶鍚庝竴涓?/span><span lang=EN-US>Valve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">錛夌殑鍓嶉潰錛屽鏋滃湪娣誨姞</span><span lang=EN-US>Valve</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鐨勬椂鍊欒</span><span lang=EN-US>StandardPipeline</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">宸茬粡澶勪簬</span><span lang=EN-US>start</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">鐘舵侊紝鍒欎細榪涜涓浜涙敞鍐岋紙璋冪敤</span><span lang=EN-US>apache commons</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">搴撶殑涓涓被錛屽畬鍏ㄦ病鏈夌湅鎳傝繖涓湴鏂規槸浠涔堜綔鐢?/span><span lang=EN-US>>_<</span><span style="FONT-FAMILY: 瀹嬩綋; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'">錛?/span></p> <img src ="http://www.aygfsteel.com/JobHu/aggbug/120373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JobHu/" target="_blank">Job Hu</a> 2007-05-28 07:39 <a href="http://www.aygfsteel.com/JobHu/archive/2007/05/28/120373.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>涓涓畝鍖栫殑java綰跨▼姹犵ず渚?/title><link>http://www.aygfsteel.com/JobHu/archive/2007/05/15/117562.html</link><dc:creator>Job Hu</dc:creator><author>Job Hu</author><pubDate>Tue, 15 May 2007 04:53:00 GMT</pubDate><guid>http://www.aygfsteel.com/JobHu/archive/2007/05/15/117562.html</guid><wfw:comment>http://www.aygfsteel.com/JobHu/comments/117562.html</wfw:comment><comments>http://www.aygfsteel.com/JobHu/archive/2007/05/15/117562.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JobHu/comments/commentRss/117562.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JobHu/services/trackbacks/117562.html</trackback:ping><description><![CDATA[//浠ュ墠鍐欏湪blogger涓婄殑涓綃囪佹枃浜?br>鏇劇粡寰堝ソ濂囩嚎紼嬫睜鏄庝箞瀹炵幇鐨勶紝.net涓湁鐜版垚鐨勭嚎紼嬫睜鍙互浣跨敤錛屼絾鏄痡ava涓病鏈夈傝繕鏈夊氨鏄疭ervlet鐨剆ervice鏂規硶鏄庝箞鏍蜂負姣忎竴涓?Request鍦ㄤ笉鍚岀殑綰跨▼涓嫭绔嬫湇鍔$殑錛岀敱浜嶴ervlet鎺ュ彛娌℃湁緇ф壙鑷猂unnable鎺ュ彛錛屽洜姝ゆ棤娉曠洿鎺ョ敱涓涓猄ervlet瀵硅薄鐢熸垚澶氫釜綰跨▼銆傚悗鏉ュ湪緗戜笂鎵懼埌浜嗕竴涓猨ava鐗堟湰鐨勭嚎紼嬫睜鐨勪緥瀛愶紙http://www.informit.com/articles/article.asp?p= 30483&seqNum=1&rl=1錛夊湪璇ヤ緥瀛愮殑鍩虹涓婄畝鍖栧緱鍒頒簡涓嬮潰榪欎釜鐗堟湰鐨刯ava綰跨▼姹狅紝璁板綍鍦ㄨ繖閲屻? <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">*******************</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>ThreadPool.java<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">*******************</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> threadPool;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.ArrayList;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.Collection;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> ThreadPool<br><img id=Codehighlighter1_160_1309_Open_Image onclick="this.style.display='none'; Codehighlighter1_160_1309_Open_Text.style.display='none'; Codehighlighter1_160_1309_Closed_Image.style.display='inline'; Codehighlighter1_160_1309_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_160_1309_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_160_1309_Closed_Text.style.display='none'; Codehighlighter1_160_1309_Open_Image.style.display='inline'; Codehighlighter1_160_1309_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_160_1309_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_160_1309_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    Thread[] threadArray;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    Collection</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Runnable</span><span style="COLOR: #000000">></span><span style="COLOR: #000000"> jobs </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ArrayList</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">Runnable</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> ThreadPool(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> threadNum)<br><img id=Codehighlighter1_290_478_Open_Image onclick="this.style.display='none'; Codehighlighter1_290_478_Open_Text.style.display='none'; Codehighlighter1_290_478_Closed_Image.style.display='inline'; Codehighlighter1_290_478_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_290_478_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_290_478_Closed_Text.style.display='none'; Codehighlighter1_290_478_Open_Image.style.display='inline'; Codehighlighter1_290_478_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_290_478_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_290_478_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        threadArray </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> WorkerThread[threadNum];<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (Thread thread : threadArray)<br><img id=Codehighlighter1_393_472_Open_Image onclick="this.style.display='none'; Codehighlighter1_393_472_Open_Text.style.display='none'; Codehighlighter1_393_472_Closed_Image.style.display='inline'; Codehighlighter1_393_472_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_393_472_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_393_472_Closed_Text.style.display='none'; Codehighlighter1_393_472_Open_Image.style.display='inline'; Codehighlighter1_393_472_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_393_472_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_393_472_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            thread </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> WorkerThread();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            thread.start();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">synchronized</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> addJob(Runnable job)<br><img id=Codehighlighter1_536_583_Open_Image onclick="this.style.display='none'; Codehighlighter1_536_583_Open_Text.style.display='none'; Codehighlighter1_536_583_Closed_Image.style.display='inline'; Codehighlighter1_536_583_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_536_583_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_536_583_Closed_Text.style.display='none'; Codehighlighter1_536_583_Open_Image.style.display='inline'; Codehighlighter1_536_583_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_536_583_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_536_583_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        jobs.add(job);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        notify();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">synchronized</span><span style="COLOR: #000000"> Runnable getJob()<br><img id=Codehighlighter1_634_948_Open_Image onclick="this.style.display='none'; Codehighlighter1_634_948_Open_Text.style.display='none'; Codehighlighter1_634_948_Closed_Image.style.display='inline'; Codehighlighter1_634_948_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_634_948_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_634_948_Closed_Text.style.display='none'; Codehighlighter1_634_948_Open_Image.style.display='inline'; Codehighlighter1_634_948_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_634_948_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_634_948_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(jobs.isEmpty())<br><img id=Codehighlighter1_674_848_Open_Image onclick="this.style.display='none'; Codehighlighter1_674_848_Open_Text.style.display='none'; Codehighlighter1_674_848_Closed_Image.style.display='inline'; Codehighlighter1_674_848_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_674_848_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_674_848_Closed_Text.style.display='none'; Codehighlighter1_674_848_Open_Image.style.display='inline'; Codehighlighter1_674_848_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_674_848_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_674_848_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_704_742_Open_Image onclick="this.style.display='none'; Codehighlighter1_704_742_Open_Text.style.display='none'; Codehighlighter1_704_742_Closed_Image.style.display='inline'; Codehighlighter1_704_742_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_704_742_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_704_742_Closed_Text.style.display='none'; Codehighlighter1_704_742_Open_Image.style.display='inline'; Codehighlighter1_704_742_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span id=Codehighlighter1_704_742_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_704_742_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                wait();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (InterruptedException e)<br><img id=Codehighlighter1_787_838_Open_Image onclick="this.style.display='none'; Codehighlighter1_787_838_Open_Text.style.display='none'; Codehighlighter1_787_838_Closed_Image.style.display='inline'; Codehighlighter1_787_838_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_787_838_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_787_838_Closed_Text.style.display='none'; Codehighlighter1_787_838_Open_Image.style.display='inline'; Codehighlighter1_787_838_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span id=Codehighlighter1_787_838_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_787_838_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                e.printStackTrace();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        Runnable job </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">  jobs.iterator().next();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        jobs.remove(job);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> job;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> WorkerThread </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> Thread<br><img id=Codehighlighter1_1005_1307_Open_Image onclick="this.style.display='none'; Codehighlighter1_1005_1307_Open_Text.style.display='none'; Codehighlighter1_1005_1307_Closed_Image.style.display='inline'; Codehighlighter1_1005_1307_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1005_1307_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1005_1307_Closed_Text.style.display='none'; Codehighlighter1_1005_1307_Open_Image.style.display='inline'; Codehighlighter1_1005_1307_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_1005_1307_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1005_1307_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> run()<br><img id=Codehighlighter1_1041_1301_Open_Image onclick="this.style.display='none'; Codehighlighter1_1041_1301_Open_Text.style.display='none'; Codehighlighter1_1041_1301_Closed_Image.style.display='inline'; Codehighlighter1_1041_1301_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1041_1301_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1041_1301_Closed_Text.style.display='none'; Codehighlighter1_1041_1301_Open_Image.style.display='inline'; Codehighlighter1_1041_1301_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_1041_1301_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1041_1301_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            Runnable job </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(job </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1119_1292_Open_Image onclick="this.style.display='none'; Codehighlighter1_1119_1292_Open_Text.style.display='none'; Codehighlighter1_1119_1292_Closed_Image.style.display='inline'; Codehighlighter1_1119_1292_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1119_1292_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1119_1292_Closed_Text.style.display='none'; Codehighlighter1_1119_1292_Open_Image.style.display='inline'; Codehighlighter1_1119_1292_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span id=Codehighlighter1_1119_1292_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1119_1292_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                job </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> getJob();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(job </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1201_1250_Open_Image onclick="this.style.display='none'; Codehighlighter1_1201_1250_Open_Text.style.display='none'; Codehighlighter1_1201_1250_Closed_Image.style.display='inline'; Codehighlighter1_1201_1250_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1201_1250_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1201_1250_Closed_Text.style.display='none'; Codehighlighter1_1201_1250_Open_Image.style.display='inline'; Codehighlighter1_1201_1250_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>                </span><span id=Codehighlighter1_1201_1250_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1201_1250_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                    job.run();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>                }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                job </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>       }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">*******************</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top>ThreadPoolTest.java<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">*******************</span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> threadPool;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> ThreadTest<br><img id=Codehighlighter1_1421_2399_Open_Image onclick="this.style.display='none'; Codehighlighter1_1421_2399_Open_Text.style.display='none'; Codehighlighter1_1421_2399_Closed_Image.style.display='inline'; Codehighlighter1_1421_2399_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1421_2399_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1421_2399_Closed_Text.style.display='none'; Codehighlighter1_1421_2399_Open_Image.style.display='inline'; Codehighlighter1_1421_2399_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1421_2399_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1421_2399_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> PrintClass </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> Runnable<br><img id=Codehighlighter1_1483_2093_Open_Image onclick="this.style.display='none'; Codehighlighter1_1483_2093_Open_Text.style.display='none'; Codehighlighter1_1483_2093_Closed_Image.style.display='inline'; Codehighlighter1_1483_2093_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1483_2093_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1483_2093_Closed_Text.style.display='none'; Codehighlighter1_1483_2093_Open_Image.style.display='inline'; Codehighlighter1_1483_2093_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_1483_2093_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1483_2093_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> threadNo;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>  <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> PrintClass(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> threadNo)<br><img id=Codehighlighter1_1566_1614_Open_Image onclick="this.style.display='none'; Codehighlighter1_1566_1614_Open_Text.style.display='none'; Codehighlighter1_1566_1614_Closed_Image.style.display='inline'; Codehighlighter1_1566_1614_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1566_1614_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1566_1614_Closed_Text.style.display='none'; Codehighlighter1_1566_1614_Open_Image.style.display='inline'; Codehighlighter1_1566_1614_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_1566_1614_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1566_1614_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.threadNo </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> threadNo;<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> run()<br><img id=Codehighlighter1_1659_2086_Open_Image onclick="this.style.display='none'; Codehighlighter1_1659_2086_Open_Text.style.display='none'; Codehighlighter1_1659_2086_Closed_Image.style.display='inline'; Codehighlighter1_1659_2086_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1659_2086_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1659_2086_Closed_Text.style.display='none'; Codehighlighter1_1659_2086_Open_Image.style.display='inline'; Codehighlighter1_1659_2086_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_1659_2086_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1659_2086_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1713_2076_Open_Image onclick="this.style.display='none'; Codehighlighter1_1713_2076_Open_Text.style.display='none'; Codehighlighter1_1713_2076_Closed_Image.style.display='inline'; Codehighlighter1_1713_2076_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1713_2076_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1713_2076_Closed_Text.style.display='none'; Codehighlighter1_1713_2076_Open_Image.style.display='inline'; Codehighlighter1_1713_2076_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span id=Codehighlighter1_1713_2076_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1713_2076_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">synchronized</span><span style="COLOR: #000000"> (System.out)<br><img id=Codehighlighter1_1773_1858_Open_Image onclick="this.style.display='none'; Codehighlighter1_1773_1858_Open_Text.style.display='none'; Codehighlighter1_1773_1858_Closed_Image.style.display='inline'; Codehighlighter1_1773_1858_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1773_1858_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1773_1858_Closed_Text.style.display='none'; Codehighlighter1_1773_1858_Open_Image.style.display='inline'; Codehighlighter1_1773_1858_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>                </span><span id=Codehighlighter1_1773_1858_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1773_1858_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                    System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Thread </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">threadNo</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>                }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1896_1954_Open_Image onclick="this.style.display='none'; Codehighlighter1_1896_1954_Open_Text.style.display='none'; Codehighlighter1_1896_1954_Closed_Image.style.display='inline'; Codehighlighter1_1896_1954_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1896_1954_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1896_1954_Closed_Text.style.display='none'; Codehighlighter1_1896_1954_Open_Image.style.display='inline'; Codehighlighter1_1896_1954_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>                </span><span id=Codehighlighter1_1896_1954_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_1896_1954_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                    Thread.sleep(</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>                }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (InterruptedException e)<br><img id=Codehighlighter1_2003_2062_Open_Image onclick="this.style.display='none'; Codehighlighter1_2003_2062_Open_Text.style.display='none'; Codehighlighter1_2003_2062_Closed_Image.style.display='inline'; Codehighlighter1_2003_2062_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2003_2062_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2003_2062_Closed_Text.style.display='none'; Codehighlighter1_2003_2062_Open_Image.style.display='inline'; Codehighlighter1_2003_2062_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>                </span><span id=Codehighlighter1_2003_2062_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_2003_2062_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>                    e.printStackTrace();<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>                }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top> <br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args)<br><img id=Codehighlighter1_2144_2397_Open_Image onclick="this.style.display='none'; Codehighlighter1_2144_2397_Open_Text.style.display='none'; Codehighlighter1_2144_2397_Closed_Image.style.display='inline'; Codehighlighter1_2144_2397_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2144_2397_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2144_2397_Closed_Text.style.display='none'; Codehighlighter1_2144_2397_Open_Image.style.display='inline'; Codehighlighter1_2144_2397_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_2144_2397_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_2144_2397_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        ThreadPool tp </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ThreadPool(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_2230_2282_Open_Image onclick="this.style.display='none'; Codehighlighter1_2230_2282_Open_Text.style.display='none'; Codehighlighter1_2230_2282_Closed_Image.style.display='inline'; Codehighlighter1_2230_2282_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2230_2282_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2230_2282_Closed_Text.style.display='none'; Codehighlighter1_2230_2282_Open_Image.style.display='inline'; Codehighlighter1_2230_2282_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_2230_2282_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_2230_2282_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            tp.addJob(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> PrintClass(i));<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">synchronized</span><span style="COLOR: #000000"> (System.out)<br><img id=Codehighlighter1_2326_2391_Open_Image onclick="this.style.display='none'; Codehighlighter1_2326_2391_Open_Text.style.display='none'; Codehighlighter1_2326_2391_Closed_Image.style.display='inline'; Codehighlighter1_2326_2391_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2326_2391_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2326_2391_Closed_Text.style.display='none'; Codehighlighter1_2326_2391_Open_Image.style.display='inline'; Codehighlighter1_2326_2391_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_2326_2391_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif"></span><span id=Codehighlighter1_2326_2391_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align=top>            System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Job adding finished</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br><img src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div> <br> <img src ="http://www.aygfsteel.com/JobHu/aggbug/117562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JobHu/" target="_blank">Job Hu</a> 2007-05-15 12:53 <a href="http://www.aygfsteel.com/JobHu/archive/2007/05/15/117562.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Tomcat絎旇錛堜竴錛?/title><link>http://www.aygfsteel.com/JobHu/archive/2007/04/25/113639.html</link><dc:creator>Job Hu</dc:creator><author>Job Hu</author><pubDate>Wed, 25 Apr 2007 14:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/JobHu/archive/2007/04/25/113639.html</guid><wfw:comment>http://www.aygfsteel.com/JobHu/comments/113639.html</wfw:comment><comments>http://www.aygfsteel.com/JobHu/archive/2007/04/25/113639.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JobHu/comments/commentRss/113639.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JobHu/services/trackbacks/113639.html</trackback:ping><description><![CDATA[<p>鍖卭rg.apache.catalina涓昏鐢辨帴鍙g粍鎴愩傛垜浠彲浠ユ妸榪欎簺鎺ュ彛鍒嗕負鍑犱釜澶х被銆?<p>絎竴綾繪帴鍙d富瑕佹槸瀵箇eb application鍙婂叾鍚勪釜緇勬垚閮ㄥ垎鐨勬娊璞°傝繖浜涙帴鍙d互Container涓虹埗鎺ュ彛錛屽垎鍒負Context錛孍ngine錛孒ost錛學rapper銆?<p>Engine浠h〃鐨勬槸鏁翠釜Catalina Servlet寮曟搸銆?<p>Host浠h〃鐨勬槸Catalina Servlet寮曟搸涓殑涓涓櫄鎷熶富鏈恒?<p>Context <p>Wrapper浠h〃鐨勬槸鏌愪竴涓叿浣撶殑servlet <p>涓嬮潰鎴戜粠Container鐨勬娊璞″疄鐜癈ontainerBase鏉ュ垏鍏ontainer錛孋ontext錛孍ngine錛孒ost錛學rapper鐨勫疄鐜般?<p>鐢變簬Container鎺ュ彛鏄痺eb application涓悇閮ㄥ垎鐨勬娊璞$殑鍏叡閮ㄥ垎錛屽洜姝ゅ叾瀹炵幇綾籆ontrainerBase鏄竴涓娊璞$被銆傚浜嶤ontainer鎺ュ彛鐨勫悇涓瓙鎺ュ彛鐨勫疄鐜扮被錛屽垯閫氳繃緇ф壙ContainerBase鏉ュ疄鐜版帴鍙ontainer鎺ュ彛銆備緥濡侲ngine鎺ュ彛緇ф壙Container鎺ュ彛錛孍ngine鐨勫疄鐜扮被StandardEnginer緇ф壙ContainerBase綾匯?<p>ContainerBase瀹炵幇寰楁帴鍙f湁Container錛孡ifecycle錛孧BeanRegistration, Pipeline錛孲erializable銆傚叾涓璍ifecycle錛孭ipeline鍜孋ontainer灞炰簬鍚屼竴涓寘銆?<p>Lifecycle鎺ュ彛瀹氫箟浜嗕竴涓叿鏈夌敓鍛芥湡灞炴х殑緇勪歡鎵蹇呴』鎻愪緵鐨勬柟娉曪細start錛堝惎鍔ㄤ竴涓粍浠訛級錛宻top錛堝仠姝竴涓粍浠訛級錛涢櫎姝や箣澶栬鎺ュ彛榪樺畾涔変簡涓庡叿鏈夌敓鍛芥湡灞炴х殑緇勪歡鐨凩istener鐩稿叧鐨?涓柟娉曪紝鐢ㄦ潵娣誨姞銆佸垹闄ゃ佹煡鎵懼璇ョ粍浠剁殑鐢熷懡鏈熼樁孌靛彉鍖栨劅鍏磋叮鐨凩istener銆?<p>Pipeline鍦═omcat涓槸涓涓垨鑰呭涓猇alue鐨勭粍鍚堬紝Value鐢ㄦ潵瀵筊equest榪涜澶勭悊錛岀敓鎴怰esponse鎴栬呭皢Request鍜孯esponse浼犵粰涓嬩竴涓猇alue榪涜澶勭悊銆俆omcat騫舵病鏈夎薄閫氬父涓鏍峰皢Pipeline鍜孷alue浣滀負鍚屼竴涓帴鍙o紝鍗充嬌鐢–omposite妯″紡錛岃屾槸Pipeline鍜孷alue鍒嗗埆浣滀負闆嗗悎鍜屽厓绱狅紝Pipeline鍙兘鍔犲叆Value鑰屼笉鑳藉姞鍏ipeline錛孷alue鍒欎笉鑳藉寘鍚換浣曞瓙Value銆?<p>ContainerBase瀵筶ifecycle鎺ュ彛鐨勫疄鐜板垎涓轟袱綾伙紝addLifecycleListener銆乫indLifecycleListener銆乺emoveLifecycleListener閮芥槸閫氳繃璋冪敤ContainerBase鐨勪竴涓狶ifecycleSupport鎴愬憳瀹炵幇錛泂tart鍜宻top鏂規硶鍒欎負ContainerBase鑷繁瀹炵幇銆傛垜涓寮濮嬩互涓篖ifecycleSupport涔熷疄鐜頒簡lifecycle鎺ュ彛錛屼絾瀹為檯涓婂茍涓嶆槸榪欐牱錛屽師鍥犳槸start鍜宻top鏂規硶涓庡叿浣撶殑緇勪歡瀵嗗垏鐩稿叧銆傛澶朙ifecycleSupport涓繕鍖呮嫭涓涓悕涓篺ireLifecycleEvent鐨勬柟娉曪紝璇ユ柟娉曢亶鍘嗘墍鏈夌殑LifeCycleListener錛屽茍瑙﹀彂Lifecycle浜嬩歡銆傛諱綋涓婄湅LifecycleSupport瀹炵幇浜嗘墍鏈夊疄鐜癓ifecycle鎺ュ彛鐨勭粍浠剁殑鍏叡閮ㄥ垎錛岀淮鎶や竴涓狶ifecycleListener鐨勬暟緇勶紝鎻愪緵浜嗘坊鍔犮佷慨鏀廣佽幏鍙朙ifecycleListener鍜岃Е鍙戝悇涓狶istener鐨勬柟娉曘備竴涓湁瓚g殑鎯呭喌鏄紝LifecycleSupport鏄竴涓猣inal綾伙紝鏃犳硶琚戶鎵匡紝鍒╃敤java鐨勮璦鎬ц川寮哄埗鎵ц浜嗛潰鍚戝璞′腑緇勫悎浼樹簬緇ф壙鐨勬濇兂銆?/p><img src ="http://www.aygfsteel.com/JobHu/aggbug/113639.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JobHu/" target="_blank">Job Hu</a> 2007-04-25 22:21 <a href="http://www.aygfsteel.com/JobHu/archive/2007/04/25/113639.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> 主站蜘蛛池模板: <a href="http://" target="_blank">交城县</a>| <a href="http://" target="_blank">东明县</a>| <a href="http://" target="_blank">隆林</a>| <a href="http://" target="_blank">砚山县</a>| <a href="http://" target="_blank">桐梓县</a>| <a href="http://" target="_blank">昌平区</a>| <a href="http://" target="_blank">宁阳县</a>| <a href="http://" target="_blank">新巴尔虎左旗</a>| <a href="http://" target="_blank">扬州市</a>| <a href="http://" target="_blank">乐山市</a>| <a href="http://" target="_blank">阿克苏市</a>| <a href="http://" target="_blank">江阴市</a>| <a href="http://" target="_blank">梁平县</a>| <a href="http://" target="_blank">土默特右旗</a>| <a href="http://" target="_blank">永新县</a>| <a href="http://" target="_blank">綦江县</a>| <a href="http://" target="_blank">武宣县</a>| <a href="http://" target="_blank">昌平区</a>| <a href="http://" target="_blank">阿合奇县</a>| <a href="http://" target="_blank">正宁县</a>| <a href="http://" target="_blank">宁明县</a>| <a href="http://" target="_blank">恩施市</a>| <a href="http://" target="_blank">宜城市</a>| <a href="http://" target="_blank">威海市</a>| <a href="http://" target="_blank">大安市</a>| <a href="http://" target="_blank">体育</a>| <a href="http://" target="_blank">余庆县</a>| <a href="http://" target="_blank">柳州市</a>| <a href="http://" target="_blank">宁海县</a>| <a href="http://" target="_blank">平利县</a>| <a href="http://" target="_blank">方城县</a>| <a href="http://" target="_blank">桓仁</a>| <a href="http://" target="_blank">界首市</a>| <a href="http://" target="_blank">乌兰县</a>| <a href="http://" target="_blank">淄博市</a>| <a href="http://" target="_blank">资中县</a>| <a href="http://" target="_blank">青海省</a>| <a href="http://" target="_blank">承德市</a>| <a href="http://" target="_blank">浏阳市</a>| <a href="http://" target="_blank">芷江</a>| <a href="http://" target="_blank">女性</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>