多线程 继承Runable接口,怎样将线程运行完后的结果返回到主线程
大家好,我现在做一个项目只能用java 1.4版本,因此没办法用1.5版本中的Callable接口给主线程提供返回值。
我做的是将各个独立的任务放在多个线程中同时进行,并希望他们在结束后将结果返回到主线程,请问这该怎么做啊,膜拜各路大侠给我指点指点!
------解决方案--------------------自定义的线程跑玩了就会自动去执行主线程啊!
------解决方案--------------------自定义回调接口,子线程执行完后通过回调接口调用主线程中的回调方法
------解决方案--------------------主线程里放一个Hashtable ,业务线程把返回结果放进去,主线程里取。
这样就OK了,另Hashtable是线程安全的,不需要另外加锁
------解决方案--------------------
------解决方案--------------------汗! 楼主我随便写下 大概是这个思路,我写的是伪代码。
你自己再去改下吧
main(){
Map datas = new Hashedtable();
MyThreadRun run = new MyThreadRun();
run.setDatas(datas);
Thread tt = new Thread(run);
tt.start();
while(!"result is ok".equal(datas.get("status"))){
try{
Thread.sleep(10000);
}catch(Exception){
//todo
}
}
//或者使用join 具体的看下api
tt.join();
Object result = run.get("result");
//dosomething
}
static Class MyThreadRun implements Runable{
Hashedtable datas;
public void setData(Map data){
this.datas = data;
}
run(){
//execute get the result
this.datas.put("result",result);
this.datas.put("status","result is ok");
}
}