1
A
回答
0
輸出永遠是i=5
因爲i++
是一個單獨的語句(同樣適用於i--
)和任何爲報表i++
和i--
,結果總是i=5
的順序。
如果您有int tmp = i; i = tmp + 1;
而不是i++
,您可以有i≠5
,因爲int tmp = i; i = tmp + 1;
不是單一語句。
這裏有兩個線程(稱爲A和B)的所有可能性:
| i = 5
A: i++ | i = 6
A: i-- | i = 5
B: i++ | i = 6
B: i-- | i = 5
| i = 5
A: i++ | i = 6
B: i++ | i = 7
A: i-- | i = 6
B: i-- | i = 5
| i = 5
A: i++ | i = 6
B: i++ | i = 7
B: i-- | i = 6
A: i-- | i = 5
相關問題
- 1. 線程 - 同步DOS輸出
- 2. 線程同步沒有得到預期的輸出
- 3. 從100個線程同步輸出
- 4. Java線程同步意外輸出
- 5. 線程未正確同步
- 6. 如何預測輸出中的線程ID?
- 7. Python:同步線程之間的輸入和輸出
- 8. 來自不同線程的同步輸出流
- 9. Tensorflow總是預測相同的輸出
- 10. 同步線程中的同步問題
- 11. 線程同步(鎖)的單元測試
- 12. 輸出同步
- 13. 同步測試線程,UI線程和CursorLoader線程
- 14. 同步未輸入
- 15. Lisp中的線程同步
- 16. qt中的線程同步
- 17. C#中的線程同步?
- 18. Python中的線程同步
- 19. WinCE中的線程同步
- 20. java中的線程/同步
- 21. Django中的線程同步
- 22. Weka輸出預測
- 23. 線程同步
- 24. 線程同步
- 25. 線程同步
- 26. 線程同步
- 27. 線程/同步
- 28. 線程同步
- 29. 同步線程
- 30. 線程同步
如果什麼executiong後的第一個線程我++是搶佔與第二個線程就開始執行它? –
我已將所有可能性添加到我的答案中(2線程的情況下,但5線程的情況相同)。 – Thomash
在三個線程的情況下,我已經計算出所有情況下5,6,7,8中的一個。希望它是正確的。 –