java 板


LINE

※ 引述《sheep922420 ()》之銘言: : 第233題 : Given: : 1. public class Threads1{ : 2. int x = 0; : 3. public class Runner implements Runnable{ : 4. public void run(){ : 5. int current = 0; : 6. for(int i=0; i<4; i++){ : 7. current = x; : 8. System.out.print(current + ", "); : 9. x = current + 2; : 10. } : 11. } : 12. } : 13. : 14. public static void main(String[] args){ : 15. new Threads1().go(); : 16. } : 17. : 18. public void go(){ : 19. Runnable rl = new Runner(); : 20. new Thread(r1).start(); : 21. new Thread(r1).start(); : 22. } : 23.} : Which two are possible results? (Choose two.) : A. 0, 2, 4, 4, 6, 8, 10, 6, 執行緒互相搶 : B. 0, 2, 4, 6, 8, 10, 2, 4, 執行緒也是互相搶 但是不會出現最後是2,4的狀況 A跟B的差別在於 a:current = x b:pring current c:x = current + 2 x的初始是0 有兩個thread的步驟如下(重覆abc) thread1:a0 b0 c0 a1 b1 c1 a2 b2 c2 a3 b3 c3 thread2:a0 b0 c0 a1 b1 c1 a2 b2 c2 a3 b3 c3 (執行緒就是上述的亂亂排) 最後的結果是2,4代表b不是某個執行緒的b2就是是b3 有可能是 t1.b3 t2.b3 (t1 t2順序沒差) t.b2 t.b3 (有b2的話 代表一定是相同的thread) 所以不管怎麼樣前面都會跑過c0 到c1 x一定會被加總2次 所以最後不可能會有2出現 前面執行緒在怎麼混亂 到最後第二筆列印至少4起跳 : C. 0, 2, 4, 6, 8, 10, 12, 14, 沒有執行緒的問題~神奇! : D. 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 不可能 : E. 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 4, 6, 8, 10, 12, 14, 不可能 : 答案:AC : 我的問題是在A, : 我的認知是, main 方法中呼叫 go 方法 : 而 go方法依序 呼叫了 new Thread(r1).start(); : new Thread(r1).start(); : 程式執行的順序是 第一條執行緒 跑了回圈三次 並對 x 及 current 變數做修改 : 再由第二條執行緒取得執行, 跑了迴圈四次 : 可是 A 最後一個輸出卻是 6 : 用eclipse 測試這個 code 也確實輸出會有遞增後又減少的情形 : 我想應該是我誤解程式執行的流程 : 想請問版上高手我錯誤的點在哪??? : 謝謝!!! -- --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.29.29.131
1F:推 sheep922420:感謝大大...我再研讀你寫的回文!!! 感謝!! 08/29 18:33
2F:→ sheep922420:我對A選項的疑問是...對於共同存取的x值已經到10了 08/29 19:43
3F:→ sheep922420:再加上2,應該到12,結果反而回到6,不知道我錯的點在哪? 08/29 19:47
4F:→ swpoker:提式:多執行緒的結果不是唯一!!! 08/30 09:42







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP