分析以下程式執行結果,說明原理 沒有分析結果不得分

時間 2021-06-17 08:05:51

1樓:匿名使用者

執行的結果應該是:ba

b1.t.run() 是呼叫mythread裡的方法run() 這時主執行緒休眠3秒後列印b

2.t.start() 是啟動執行緒mythread, 並執行方法run() 這時執行緒t休眠3秒後列印a

3.在2執行的時候同時執行system.out.println("a"); 列印a, 因為2要休眠3秒,所以先列印出a

2樓:彩色母豬

輸出結果目測為bab(結果為目測,僅供參考),首先我們例項了mythread類,然後呼叫會了他的run方法,此時主程序就執行到了run方法,然後run方法又呼叫sleep方法等待3秒在輸出b後回到主執行緒,主執行緒繼續往下執行呼叫執行緒的start方法,start後此時就產生了兩個執行緒了,一個在執行run方法,一個在執行主執行緒,執行run方法的執行到呼叫sleep方法時會等待3秒,而main方法的主執行緒不用等待,所以比子執行緒先輸出a,然後子執行緒等待3秒後在輸出b,因此答案是bab。如果有**說錯了望指出,互相學習!

3樓:匿名使用者

首先宣告一個執行緒類的物件,第二步呼叫run方法,因為開啟執行緒的方法只有start,如果呼叫run跟普通方法沒有什麼區別,所以會先執行run方法中的**列印出b,在睡眠3秒之後開始啟動執行緒,因為執行緒是在後臺執行的,並且睡眠3秒,cpu被主執行緒中的system.out列印語句搶佔.所以先隨後列印出a,然後執行緒休眠結束.

列印出b.