[問答題] 請完成下列Java程序:運行3個線程,每一個線程有自己的標志,用a,b,c表示,每個線程顯示一個“Start”信息和一個“End”信息并且間隔地顯示
[問答題] 請完成下列Java程序:運行3個線程,每一個線程有自己的標志,用a,b,c表示,每個線程顯示一個“Start”信息和一個“End”信息并且間隔地顯示2個“Loop”信息(間隔變化為(0.5-2)秒之間的隨機延遲)。
程序運行結果如下:(注:由于時間間隔為隨機數(shù),所以,運行結果的順序不惟一)
a Start
b Start
c Start
b Loop
a Loop
b Loop
b End
c Loop
a Loop
a End
c Loop
c End
注意:請勿改動main()主方法和其他已有語句內容,僅在下劃線處填入適當?shù)恼Z句。
public class ex2_2 implements Runnable
static char flag2_2 = ’a’;
public static void main(String[] arg)
ex2_2 obj2_2 = new ex2_2();
Thread thread2_2 = new Thread(obi2_2);
thread2_2.start();
thread2_2 = new Thread(obj2_2);
thread2 2.start();
thread2_2 = new Thread(obi2_2);
thread2_2.start ( );
public void run()char myflag2_2;
synchronized(this)
_________________;
System.out.
正確答案:myflag2_2 = flag2_2++((int)((high-low+1)*(Math.random())))+low
參考解析:本題主要考查線程的創(chuàng)建與同步和控制隨機數(shù)產生范圍的算法。解題關鍵是,熟悉線程的概念和使用,線程的同步控制, char類型數(shù)據(jù)的操作,以及熟悉隨機數(shù)產生的方法Math.random(),并且能夠進一步根據(jù)需要控制隨機數(shù)產生的范圍。在本題中,main()方法中創(chuàng)建3個線程,這3個線程使用obj2_2對象。線程調用start()方法來中斷,使一個新的線程開始執(zhí)行,并且調用run()方法。第1空,run()方法為自己設置一個線程的標志,并為下一個線程的使用增加這個標志值,由于此時線程正在處理中,因此在同步塊中完成修改標志的語句放在同步塊中。第2個空,通過low和high兩個參數(shù),控制產生隨機數(shù)的范圍,將基本的數(shù)學思想應用于程序設計中。
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域專業(yè)人士。