2013-11-22 54 views

回答

0

沒有區別,直到您調用single println命令。一個println在內部同步。但是,如果你出包含多個打印報表,可能有這樣的情況,下面illistrated

out(int threadId){ 
    println("line 1 T$threadId") 
    println("line 2 T$threadId") 
} 

Execution may flow like 
//output by 2 threads 
line 1 T1 // thread 1 entered out 
// thread 1 was interrupted 
// thread 2 entered out 
line 1 T2 
line 2 T2 //end of thread 2 out 
// Thread 1 resumed 
line 2 T1 

正如我們看到的,輸出一團糟。同步修復該問題

參見SO回答有關的println內同步 https://stackoverflow.com/a/9459886/1601606

+0

我懷疑'println'是原子的。 '+ ='不是原子的。你的意思是'同步'嗎? –

+0

@tim是的,我的意思是原子,作爲monolite結構,將被作爲一個整體執行。感謝評論!我知道'原子'這個術語,但在這裏與它的用法有點混淆。我糾正了答案。 – Seagull

相關問題