求一实现,java多线程调用RMI方法。
RMI方法是远程执行Linux指令,该方法已经实现。
传入一个字符串队列(队列中数据为调用RMI方法时需要的参数),定义一个线程池(线程池中最大线程数为4个)。循环队列,通过线程来执行RMI方法,每次调用RMI方法都会有个字符串返回值(暂且定义为"true"和"false),如果返回值为false则停止循环队列。
求源码,谢谢!

解决方案 »

  1.   


    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方法后获得返回值来处理是否继续循环队列。