我将一个任务分成2个部分A和B,这个任务主要是计算的我用通过使用rmi
fun(A)//这个是在本机上算
Remot.fun(B)//这个是在另外一台电脑上面算结果效率差不多,是不是因为java的执行是顺序的啊,fun()执行完了,才执行Remot.fun()后来我用多线程,把fun和Remot.fun都封到一个线程类里面去了 因为这2个操作都有一个返回结果
所以在线程里面设计了一个 gets()方法,得到run()计算的结果,结果调用的时候就出问题了
t1,t2都是线程类的实例 在t1.start() 和 t2.start() 我用t1.gets()方法希望得到一个返回结果,结果返回的是null
fun(A)//这个是在本机上算
Remot.fun(B)//这个是在另外一台电脑上面算结果效率差不多,是不是因为java的执行是顺序的啊,fun()执行完了,才执行Remot.fun()后来我用多线程,把fun和Remot.fun都封到一个线程类里面去了 因为这2个操作都有一个返回结果
所以在线程里面设计了一个 gets()方法,得到run()计算的结果,结果调用的时候就出问题了
t1,t2都是线程类的实例 在t1.start() 和 t2.start() 我用t1.gets()方法希望得到一个返回结果,结果返回的是null
String qd1 = qdata.buffer(args);//这个调用的是本地方法
String qd2 =c.buffer(args);//调用的是另外一台电脑上的方法这种方法调用rmi,好像效果一点都不明显 那应该怎么用rmi呢,我希望 两个buffer方法能够同时调用,这样才能节约时间
class thread2 extends Thread{
int s
int a,b;
public thread2(int a, int b,int tag){
this.a=a;
this.b=b;
}
public void run(){
que();
}
public void que(){
if(tag==0) s=a+b;
}
else if(tag==1){s=a-b;
}
public String getS(){
return s;
}
}我得线程逻辑就是这样得
调用start方法以后,在调用gets方法,得到得结果是空。。有什么办法解决得这问题呢
但是你在线程间共享数据的时候有点问题,所以会返回null,建议你可以去看看java thread,考虑用另外一种数据共享的方式。
你至少也要等他们返回结果,这两个语句没有阻塞,
所以不能马上get