如何从线程外部调用线程内部的方法。在某些情况下,b()将从a()调用,但在某些情况下,我想通知线程从线程外部转到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();
答案 0 :(得分:0)
您需要对ClientThread实例的引用:
ClientThread client = new ClientThread();
Thread t = new Thread(client);
t.start();
client.b();
注意:无法“调用”另一个执行线程,只能发出信号。因此,OP问题必须减少为'我怎样才能调用java线程对象内的方法'。所以,@ Keppil答案不正确,不应该被删除。