<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-TW">
		<id>https://fgchen.com/wiki/index.php?action=history&amp;feed=atom&amp;title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_225</id>
		<title>SCJP 1.6版考題 225 - 修訂歷史</title>
		<link rel="self" type="application/atom+xml" href="https://fgchen.com/wiki/index.php?action=history&amp;feed=atom&amp;title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_225"/>
		<link rel="alternate" type="text/html" href="https://fgchen.com/wiki/index.php?title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_225&amp;action=history"/>
		<updated>2026-05-04T17:02:53Z</updated>
		<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://fgchen.com/wiki/index.php?title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_225&amp;diff=1202&amp;oldid=prev</id>
		<title>Ikk：新頁面: 檔案:SCJP225-1 2.png   Given:  8.  Runnable r = new Runnable() {  9.      public void run() {  10.          try {  11.              Thread.sleep(1000);  12.          } catch(Inte...</title>
		<link rel="alternate" type="text/html" href="https://fgchen.com/wiki/index.php?title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_225&amp;diff=1202&amp;oldid=prev"/>
				<updated>2013-03-29T23:53:30Z</updated>
		
		<summary type="html">&lt;p&gt;新頁面: &lt;a href=&quot;/wiki/index.php?title=%E6%AA%94%E6%A1%88:SCJP225-1_2.png&quot; title=&quot;檔案:SCJP225-1 2.png&quot;&gt;檔案:SCJP225-1 2.png&lt;/a&gt;   Given:  8.  Runnable r = new Runnable() {  9.      public void run() {  10.          try {  11.              Thread.sleep(1000);  12.          } catch(Inte...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[檔案:SCJP225-1 2.png]]&lt;br /&gt;
&lt;br /&gt;
 Given:&lt;br /&gt;
 8.  Runnable r = new Runnable() {&lt;br /&gt;
 9.      public void run() {&lt;br /&gt;
 10.          try {&lt;br /&gt;
 11.              Thread.sleep(1000);&lt;br /&gt;
 12.          } catch(InterruptedException e) {&lt;br /&gt;
 13.              System.out.println(“interrupted”);&lt;br /&gt;
 14.          }&lt;br /&gt;
 15.          System.out.println(“ran”);&lt;br /&gt;
 16.      }&lt;br /&gt;
 17.  };&lt;br /&gt;
 18.  &lt;br /&gt;
 19.  Thread t = new Thread(r);&lt;br /&gt;
 20.  t.start();&lt;br /&gt;
 21.  System.out.println(“started”);&lt;br /&gt;
 22.  try {&lt;br /&gt;
 23.      t.sleep(2000);&lt;br /&gt;
 24.  }&lt;br /&gt;
 25.  catch(Exception e) {}&lt;br /&gt;
 26.  System.out.println(“interrupting”);&lt;br /&gt;
 27.  t.interrupt();&lt;br /&gt;
 28.  System.out.println(“ended”);&lt;br /&gt;
 Assume that sleep(n) executes in exactly n milliseconds. and all other code executes in an insignificant amount of time. Place the fragments in the output area    to show the result of running this code. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:medium;&amp;quot;&amp;gt;解答&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: medium;&amp;quot;&amp;gt;Ans: &amp;lt;BR&amp;gt; [[檔案:SCJP225-2.png]]  &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:medium;&amp;quot;&amp;gt; 解說:&lt;br /&gt;
 題目問設sleep(n)n毫秒內執行完閉，所有其他的程式碼在少量的時間內執行完閉，輸出應該是什麼？&lt;br /&gt;
 &lt;br /&gt;
 上面的程式完整的寫法如下：&lt;br /&gt;
 &lt;br /&gt;
 class threadTest{&lt;br /&gt;
  public static void main(String[] args){&lt;br /&gt;
   Runnable r = new Runnable(){&lt;br /&gt;
    public void run(){&lt;br /&gt;
     try{&lt;br /&gt;
      Thread.sleep(1000);&lt;br /&gt;
     }catch(InterruptedException e){&lt;br /&gt;
      System.out.println(&amp;quot;interrupted&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
     System.out.println(&amp;quot;ran&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
   };&lt;br /&gt;
   Thread t = new Thread(r);&lt;br /&gt;
   try{&lt;br /&gt;
    t.start();&lt;br /&gt;
   } catch (Exceotion e){&lt;br /&gt;
    System.out.println(&amp;quot;started&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
   t.sleep(2000);&lt;br /&gt;
   System.out.println(&amp;quot;interrupting&amp;quot;);&lt;br /&gt;
   t.interrupt();&lt;br /&gt;
   System.out.println(&amp;quot;ended&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 t執行緒被啟動後，執行1秒的睡眠，main執行緒執行2秒的睡眠(t.sleep(2000))，基本上t執行緒會先離開睡眠，而執行印出ran &lt;br /&gt;
 &lt;br /&gt;
 之後main離開睡眠狀態，印出interrupting&lt;br /&gt;
 再發出一個interrupt(因為t已經離開睡眠狀態，這個interrupt不會造成t的睡眠狀態中斷，而印出interrupted。 &lt;br /&gt;
 &lt;br /&gt;
 main印出ended…&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Sleep是Thread的靜態方法不是物件方法，使用方法應為Thread.Sleep(n)，第23行行t.sleep(1000)等同於Thread.Sleep(1000)。&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/span&amp;gt;	&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{SCJP 1.6版考題講解}}&lt;/div&gt;</summary>
		<author><name>Ikk</name></author>	</entry>

	</feed>