java 多线程调用RMI

筱周 2013-06-03 11:19:45
求一实现,java多线程调用RMI方法。
RMI方法是远程执行Linux指令,该方法已经实现。
传入一个字符串队列(队列中数据为调用RMI方法时需要的参数),定义一个线程池(线程池中最大线程数为4个)。循环队列,通过线程来执行RMI方法,每次调用RMI方法都会有个字符串返回值(暂且定义为"true"和"false),如果返回值为false则停止循环队列。
求源码,谢谢!
...全文
186 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
筱周 2013-06-04
  • 打赏
  • 举报
回复

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方法后获得返回值来处理是否继续循环队列。
筱周 2013-06-03
  • 打赏
  • 举报
回复
没人回答么,帖子都沉了!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧