스레드 외부의 스레드 내부에있는 메서드를 어떻게 호출 할 수 있습니까? 경우에 따라 b()는 a()에서 호출되지만 상황에 따라 스레드 외부에서 b()로 이동하라는 신호를 보내려고합니다. 나는이 문제를 해결하기 위해 관찰자 패턴을 사용할 수 있다고 가정하지만, 관찰자 패턴을 두 번 사용할 수 없다면 이미이 스레드에서 관찰자 패턴을 사용하여 다른 것을 할 것입니다.스레드에 신호 보내기
ClientThread client = new ClientThread();
Thread t = new Thread(client);
t.start();
client.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 응답이 삭제 된 것은 불행합니다. 메소드가 일부 스레드/실행 가능 클래스에 표시되기 때문에 해당 스레드의 스택에서 호출되어야 함을 의미하지는 않습니다. –