求一实现,java多线程调用RMI方法。
RMI方法是远程执行Linux指令,该方法已经实现。
传入一个字符串队列(队列中数据为调用RMI方法时需要的参数),定义一个线程池(线程池中最大线程数为4个)。循环队列,通过线程来执行RMI方法,每次调用RMI方法都会有个字符串返回值(暂且定义为"true"和"false),如果返回值为false则停止循环队列。
求源码,谢谢!
RMI方法是远程执行Linux指令,该方法已经实现。
传入一个字符串队列(队列中数据为调用RMI方法时需要的参数),定义一个线程池(线程池中最大线程数为4个)。循环队列,通过线程来执行RMI方法,每次调用RMI方法都会有个字符串返回值(暂且定义为"true"和"false),如果返回值为false则停止循环队列。
求源码,谢谢!
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class ExecutorTest extends Thread { String name; public ExecutorTest(String s) {
this.name = s;
} public void run() {
try {
System.out.println(Thread.currentThread().getName() + " start....");
System.out.println(name);
// result = xxxx.get(name); 调用RMI方法
if ("3333".equals(name)) {//这里模拟调用RMI方法后获得返回值
//停止循环队列,该如何实现。
} System.out.println(Thread.currentThread().getName() + " end...");
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String args[]) {
ExecutorService service = Executors.newFixedThreadPool(4); Queue<String> allTasks = new ConcurrentLinkedQueue<String>();
allTasks.offer("1111");
allTasks.offer("2222");
allTasks.offer("3333");
allTasks.offer("4444");
allTasks.offer("5555");
allTasks.offer("6666");
String str; while ((str = allTasks.poll()) != null) {
service.execute(new ExecutorTest(str));
} System.out.println("submit finish");
service.shutdown();
}
}写了段代码,请教下该如何根据调用RMI方法后获得返回值来处理是否继续循环队列。