1 回答

TA貢獻(xiàn)1757條經(jīng)驗 獲得超8個贊
首先你需要了解wait()是Object類的方法,所以它就像一個特定的線程在等待一些與Object相關(guān)的動作。因此,如果在 proHs 線程下調(diào)用 bidStep (int gt)并且您想停止 proHs 線程,基本上要等到選擇特定按鈕然后您需要將等待放在某個對象上,通常它應(yīng)該是 Object需要采取一些行動。您需要在此處列出以下步驟:
proHs 對象引用。
鎖定 proHs 對象。
調(diào)用 proHs.wait()。
從第二個線程您將執(zhí)行以下操作: 1. 在 buttonClickListener 第二個線程內(nèi)鎖定 proHs 對象
。) 2. 調(diào)用 proHs.notify()。
class InterfaceImpl {
Thread proHs;
boolean btnResponse;
public boolean biddingStep(int gt) {
System.out.println(" ");
System.out.println("I HAVE OR NOT PART");
panelLicitace.setVisible(true);
mam.setVisible(true);
nemam.setVisible(true);
// HERE a code i want
//1. stop proHS thread
synchronized(proHs) {
proHs.wait();
//2. loop program, wait for input from 2 buttons
//3. return true or false
return btnResponse;
}
}
// This method should be called from another thread
public boolean btnClickListener() {
btnResponse = true or false
synchronized(proHs) {
proHs.notify();
}
}
}
這里 bidStep() 方法應(yīng)該在 btnClickListener() 之前調(diào)用,這樣一旦線程等待,另一個線程就會通知它。
添加回答
舉報