<?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_236</id>
		<title>SCJP 1.6版考題 236 - 修訂歷史</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_236"/>
		<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_236&amp;action=history"/>
		<updated>2026-05-04T12:49:02Z</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_236&amp;diff=1120&amp;oldid=prev</id>
		<title>Ikk：新頁面: Given:  &lt;br&gt;1. &amp;nbsp; class Computation extends Thread{  &lt;br&gt;2.  &lt;br&gt;3. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private int num;  &lt;br&gt;4. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pri...</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_236&amp;diff=1120&amp;oldid=prev"/>
				<updated>2013-03-27T13:34:37Z</updated>
		
		<summary type="html">&lt;p&gt;新頁面: Given:  &amp;lt;br&amp;gt;1.   class Computation extends Thread{  &amp;lt;br&amp;gt;2.  &amp;lt;br&amp;gt;3.             private int num;  &amp;lt;br&amp;gt;4.             pri...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Given: &lt;br /&gt;
&amp;lt;br&amp;gt;1. &amp;amp;nbsp; class Computation extends Thread{ &lt;br /&gt;
&amp;lt;br&amp;gt;2. &lt;br /&gt;
&amp;lt;br&amp;gt;3. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; private int num; &lt;br /&gt;
&amp;lt;br&amp;gt;4. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; private boolean isComplete; &lt;br /&gt;
&amp;lt;br&amp;gt;5. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; private int result; &lt;br /&gt;
&amp;lt;br&amp;gt;6. &lt;br /&gt;
&amp;lt;br&amp;gt;7. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; public Computation(int num){this.num = num;} &lt;br /&gt;
&amp;lt;br&amp;gt;8. &lt;br /&gt;
&amp;lt;br&amp;gt;9. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; public synchronized void run(){ &lt;br /&gt;
&amp;lt;br&amp;gt;10. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; result = num * 2; &lt;br /&gt;
&amp;lt;br&amp;gt;11. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; isComplete = true; &lt;br /&gt;
&amp;lt;br&amp;gt;12. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; notify();&lt;br /&gt;
&amp;lt;br&amp;gt;13. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;} &lt;br /&gt;
&amp;lt;br&amp;gt;14. &lt;br /&gt;
&amp;lt;br&amp;gt;15. &amp;amp;nbsp;public synchronized int getResult(){&lt;br /&gt;
&amp;lt;br&amp;gt;16. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;while(!isComplete){ &lt;br /&gt;
&amp;lt;br&amp;gt;17. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; try{ &lt;br /&gt;
&amp;lt;br&amp;gt;18. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;wait(); &lt;br /&gt;
&amp;lt;br&amp;gt;19. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;}catch(InterruptedException e){} &lt;br /&gt;
&amp;lt;br&amp;gt;20. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;}&lt;br /&gt;
&amp;lt;br&amp;gt;21. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;return result; &amp;lt;br&amp;gt;22. &amp;amp;nbsp; } &lt;br /&gt;
&amp;lt;br&amp;gt;23.&lt;br /&gt;
&amp;lt;br&amp;gt;24. &amp;amp;nbsp; public static void main(String[] args){ &lt;br /&gt;
&amp;lt;br&amp;gt;25. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Computation[] computations = new Computation[4]; &lt;br /&gt;
&amp;lt;br&amp;gt;26. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; for(int i=0; i&amp;amp;lt;computations.length; i++){ &lt;br /&gt;
&amp;lt;br&amp;gt;27. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;computations[i] = new Computation(i); &lt;br /&gt;
&amp;lt;br&amp;gt;28. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;computations[i].start(); &lt;br /&gt;
&amp;lt;br&amp;gt;29. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;} &lt;br /&gt;
&amp;lt;br&amp;gt;30. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; for(Computation c&amp;amp;nbsp;: computations) &lt;br /&gt;
&amp;lt;br&amp;gt;31. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.print(c.getResult() + &amp;quot; &amp;quot;); &lt;br /&gt;
&amp;lt;br&amp;gt;32. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;} &lt;br /&gt;
&amp;lt;br&amp;gt;33. &amp;amp;nbsp; } &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;What is the result? &amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;A. The code will deadlock. &lt;br /&gt;
&amp;lt;br&amp;gt;B. The code may run with no output. &lt;br /&gt;
&amp;lt;br&amp;gt;C. An exception is thrown at runtime. &lt;br /&gt;
&amp;lt;br&amp;gt;D. The code may run with output &amp;quot;0 6&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;E. The code may run with output &amp;quot;2 0 6 4&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;F. The code may run with output &amp;quot;0 2 4 6&amp;quot;. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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: F   &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;
第25~29行建立四個Thread物件，然後分別啟動這四個執行緒物件… &lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;緊接著30~31行分別讓四個執行緒物件呼叫getResult方法，然後分別進入對各自執行緒物件的等待事件中… &lt;br /&gt;
&amp;lt;br&amp;gt;最後四個執行緒的run方法分別通知各自執行緒離開wait狀態…&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;比較可能的輸出是F，因為各執行緒物件的num是依for迴圈0~3再乘以2得來，輸出依0 2 4 6的機率較高。&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>