java actor模型和消息传递简单示例
来源:互联网 发布:微信扫号器数据 编辑:程序博客网 时间:2024/05/18 17:28
接上面java actor模型框架ujavaactor http://zhwj184.iteye.com/admin/blogs/1613351,上面的示例比较复杂,写一个简单点的示例:
import java.util.HashMap;import java.util.Map;import com.ibm.actor.AbstractActor;import com.ibm.actor.Actor;import com.ibm.actor.DefaultActorManager;import com.ibm.actor.DefaultMessage;import com.ibm.actor.Message;public class TestActor extends AbstractActor {private Actor to;public void setTestActor(Actor sendTo) {this.to = sendTo;}@Overridepublic void activate() {super.activate();}@Overridepublic void deactivate() {logger.trace("TestActor deactivate: %s", getName());super.deactivate();}@Overrideprotected void runBody() {DefaultMessage m = new DefaultMessage("message->from :" + getName(), 20);getManager().send(m, null, this);}@Overrideprotected void loopBody(Message m) {String subject = m.getSubject();int count = (Integer) m.getData();if (count > 0) {m = new DefaultMessage("message->from :" + getName(), count - 1);System.out.println(getName() + ":" + subject + " data:" + m.getData());getManager().send(m, this, to);}}public static void main(String[] args) {DefaultActorManager am = new DefaultActorManager();Map<String, Actor> actors = new HashMap<String, Actor>();try {Map<String, Object> options = new HashMap<String, Object>();options.put(DefaultActorManager.ACTOR_THREAD_COUNT, 2);am.initialize(options);TestActor a = (TestActor) am.createActor(TestActor.class, "actor0");actors.put(a.getName(), a);TestActor b = (TestActor) am.createActor(TestActor.class, "actor1");actors.put(b.getName(), b);a.setTestActor(b);b.setTestActor(a);for (String key : actors.keySet()) {am.startActor(actors.get(key));}Thread.sleep(10000000);// am.terminateAndWait();} catch (Exception e) {}}}
输出:
actor0:message->from :actor0 data:19actor1:message->from :actor1 data:19actor1:message->from :actor0 data:18actor0:message->from :actor1 data:18actor1:message->from :actor0 data:17actor0:message->from :actor1 data:17actor0:message->from :actor1 data:16actor1:message->from :actor0 data:16actor1:message->from :actor0 data:15actor0:message->from :actor1 data:15actor0:message->from :actor1 data:14actor1:message->from :actor0 data:14actor0:message->from :actor1 data:13actor1:message->from :actor0 data:13actor0:message->from :actor1 data:12actor1:message->from :actor0 data:12actor1:message->from :actor0 data:11actor0:message->from :actor1 data:11actor0:message->from :actor1 data:10actor1:message->from :actor0 data:10actor0:message->from :actor1 data:9actor1:message->from :actor0 data:9actor1:message->from :actor0 data:8actor0:message->from :actor1 data:8actor0:message->from :actor1 data:7actor1:message->from :actor0 data:7actor1:message->from :actor0 data:6actor0:message->from :actor1 data:6actor0:message->from :actor1 data:5actor1:message->from :actor0 data:5actor1:message->from :actor0 data:4actor0:message->from :actor1 data:4actor1:message->from :actor0 data:3actor0:message->from :actor1 data:3actor1:message->from :actor0 data:2actor0:message->from :actor1 data:2actor1:message->from :actor0 data:1actor0:message->from :actor1 data:1actor1:message->from :actor0 data:0actor0:message->from :actor1 data:0
- java actor模型和消息传递简单示例
- java actor模型和消息传递实现分析
- Kilim:actor模型和消息传递的Java实现
- java actor模型和消息传递实现分析
- Actor模型和Akka消息驱动系统
- Actor示例简单介绍
- Akka Actor 模型云计算架构以及 Remote Actor的简单示例
- Scala actor比Jetlang和Groovy++消息传递都慢?
- 一种简单的消息和事件传递模型
- actor发送消息简单例子
- ACTOR模型和CSP模型
- Akka学习笔记:Actor消息传递(1)
- Akka学习笔记:Actor消息传递(2)
- scala进阶21-actor之消息传递
- scala并发编程原生线程Actor、Case Class下的消息传递和偏函数实战
- Actor模型和CSP模型的区别
- Actor模型和CSP模型的区别
- 消息传递和 Java 消息服务(JMS)
- QQ协议分析二
- 数据结构--数组--稀疏矩阵的建立
- Windows转Linux注意事项
- 《Windows环境下的多线程编程原理与应用》的学习笔记
- tomcat的问题
- java actor模型和消息传递简单示例
- Android软件开发之EditText 详解(八)
- wpf 反编译
- org.hibernate.TransientObjectException: The given object has a null identifier: cn.com.cis.acic.sale
- C# 中 json对象与字符串的相互转换
- 山狮来临,Notes何往
- ARMv7的内存管理
- iOS开发之结合asp.net webservice实现文件上传下载
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(四)