雙線程猜數字

2021-08-13 16:11:28 字數 1147 閱讀 3044

用兩個執行緒玩猜數字遊戲,第乙個執行緒負責隨機給出1~100之間的乙個整數,第二個執行緒負責猜出這個數。要求每當第二個執行緒給出自己的猜測後,第乙個執行緒都會提示「猜小了」、「猜大了」或「猜對了」。猜數之前,要求第二個執行緒要等待第乙個執行緒設定好要猜測的數。第乙個執行緒設定好猜測數之後,兩個執行緒還要相互等待,其原則是:第二個執行緒給出自己的猜測後,等待第乙個執行緒給出的提示;第乙個執行緒給出提示後,等待給第二個執行緒給出猜測,如此進行,直到第二個執行緒給出正確的猜測後,兩個執行緒進入死亡狀態。

public class twothreadguessnumber 

}

public class number implements runnable 

public void run()

} public synchronized void setmessage(int count)

//給完真實的數後,如果當前執行緒為給數字

if(thread.currentthread()==givenumberthread)

catch(interruptedexception e) {}

//如果猜的數字比實際的小

if(realnumber>guessnumber)

//如果猜的數字比實際的大

else if(realnumberelse

pleaseguess=true;

}//如果當前執行緒為猜數字並且給出真實的數

if(thread.currentthread()==guessnumberthread&&isgivenumber==true)

catch(interruptedexception e) {}

if(message==smaller)

else if(message==larger)

pleaseguess=false;

}//喚醒在此物件監視器上等待的所有執行緒。執行緒通過呼叫其中乙個 wait 方法,在物件的監視器上等待。

//直到當前執行緒放棄此物件上的鎖定,才能繼續執行被喚醒的執行緒。被喚醒的執行緒將以常規方式與在該物件上主動同步的其他所有執行緒進行競爭;例如,喚醒的執行緒在作為鎖定此物件的下乙個執行緒方面沒有可靠的特權或劣勢。

notifyall();

}}

執行緒題 雙線程迴圈列印

主線程啟動兩個子執行緒,其中乙個連續列印b,另乙個連續列印e,兩個執行緒的列印輸出在同一行,要求列印出一行包括40個b和e相同的字串,bebebebe 實現 package test public class test204 else if s.equals e times catch except...

猜數字c 限制 猜數字小遊戲

週末看到的乙個猜數字小遊戲 挺有意思的 include include include using namespace std void start void getresults int i,j,life,maxrand char c void start life 5 玩家生命數 srand u...

猜數字遊戲

問題描述 猜數字遊戲 隨機出乙個兩位數,然後讓你猜,直到猜對為止。猜對後可以提示選擇是否再玩一次。include include using namespace std int main srand unsigned int time null int num rand 90 10 隨機出乙個兩位數...