我怎麼能從線程外部調用線程內的方法。在某些情況下,b()將會從()中調用,但在某些情況下,我想指示線程從線程外部轉到b()。我假設我可以使用觀察者模式來解決這個問題,但是我已經在這個線程上使用了觀察者模式來做別的事情,除非可以使用觀察者模式兩次。發信號通知線程
Thread t = new Thread(new clientThread());
t.start();
boolean someBool = false;
class clientThread implements Runnable{
run(){
a();
}
public void a(){
while(!someBool){
Object ob = in.readObject();
b();
//do stuff
}
public void b() {
while(true){
Object ob = in.readObject();
//do stuff
}
}
}
t.b();
您需要某種方式與該線程上運行的代碼進行通信,並要求它爲您工作。你想解決什麼問題? – SLaks
不幸的是@Keppil的答案被刪除了。只是因爲一個方法會跳到某個線程/可運行類,這並不意味着它必須在該線程的堆棧上調用。 –