📄 computeengine.java
字号:
package engine;
import java.rmi.*;
import java.rmi.server.*;
import compute.*;
public class ComputeEngine extends UnicastRemoteObject implements Compute{
int id = 0;
taskList task_list;
compteTask com;
/*
* 构造函数
*/
public ComputeEngine() throws RemoteException
{
super();
System.out.println("run ComputeEngine ...");
task_list = new taskList();
com = new compteTask(task_list);
}
/*
* 处理客户端的任务查询,判断任务是否执行完毕
* 若执行完毕则返回执行结果并将任务从任务队列中删除,否则返回null
*/
public Object askTask(int id) throws RemoteException {
// TODO Auto-generated method stub
System.out.println("client "+id + "ask result ...");
if(task_list.isComplete(id)==0)
{
Object o = task_list.task_list.get(id).getResult();
System.out.println("the result is "+(Integer)o);
task_list.task_list.remove(id);
return o;
}
System.out.println("the result hasn't compute out.");
return null;
}
/*
* 接收客户端提交的任务,返回给其一个ID
*/
public int submitTask(Task t) throws RemoteException {
// TODO Auto-generated method stub
if(!com.isAlive())
com.start();
id ++;
task_list.pushTask(id, t);
System.out.println("client submit a task, give him the id: "+id);
return id;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -