2013-10-28 150 views
0

如果線程正在執行下面的語句(假設x的值爲1)並且在'Here'處休眠並且某個其他線程更改了x的值(假設爲10),那麼輸出是什麼?在線程中執行java語句

System.out.println(/Here/++x); 
+0

您可能想查看[Synchronization and System.out.println](http://stackoverflow.com/questions/9459657/synchronization-and-system-out-println)帖子的答案。 –

+0

這取決於x在每個線程中的聲明和實際引用 – MRalwasser

回答

0

如果運行System.out停止它做任何處理之前就++x,然後的x值被另一個線程改變10線程,打印的聲明將是什麼Here計算結果爲,其次是11

0

哪一個先到先得。但是你應該知道,如果命令正在被執行,它不可能改變。即使系統是多核,它也會先完成命令然後跳到下一個。除非它稱爲一個大功能,這是一個不同的主題。

+0

「* big function *」的定義是什麼? –