我想从主线程创建两个可以相互通信的线程(T1和T2)。我正在寻找实现这一目标的最佳方法。 我的想法是使用处理程序执行此操作。这个可以吗? 问题是我不知道T1如何获得T2的处理程序引用,反之亦然。
请帮忙。
EDIT。
让我更详细地解释一下情况。如果在T1中发生某些情况,我想要信号到T2,以便T2可以做其他一些工作。
答案 0 :(得分:1)
您可以这样做:
public class Test {
static abstract class MyThread extends Thread implements Callback{
Callback mCallback;
public void setCallBack(Callback pCallBack){
mCallback = pCallBack;
}
}
static interface Callback{
public void onAction(Object... args);
}
public static void main(String args[]){
MyThread T1 = new MyThread(){
@Override
public void onAction(Object... args) {
//code when onAction is called.
}
public void run(){
//T1 thread code here
//if some condition
//call the Callback
mCallback.onAction();
}
};
MyThread T2 = new MyThread(){
@Override
public void onAction(Object... args) {
//code when onAction is called.
//"Other work"
}
public void run(){
//T2 thread code here
}
};
T1.setCallBack(T2);
T2.setCallBack(T1);
T1.start();
T2.start();
}
}