Java 开发 2.0: Kilim 简介
2010-05-21 00:00:00 来源:WEB开发网Calculator 的 execute 方法与 DeferredDivision 的相应方法一样,不断循环查找共享 Mailbox 中的项。区别在于 Calculator 调用 get 方法,这是一种阻塞调用。相应地,当一条 Calculation “消息” 显示时,它执行请求的除法运算。最后,Calculator 将修改的 Calculation 放回到 Mailbox 中(采用非阻塞方式),然后进入休眠状态。两个角色中的休眠调用都仅用于简化控制台的读取。
Kilim 的 weaver
在前面,我提到了 Kilim 通过其 weaver 执行字节码操作。这是一个简单的后处理过程,您在编译了类之后 运行它。weaver 然后将一些特殊代码添加到包含 Pausable 标记的各种类和方法中。
调用 weaver 非常简单。举例而言,在清单 4 中,我使用 Ant 调用 Weaver。我需要做的只是告诉 Weaver 我需要的类在哪里,以及在哪里放置生成的字节码。在这个例子中,我让 Weaver 更改 target/classes 字典中的类,并将生成的字节码写回到该字典。
清单 4. Ant 调用 Kilim 的 weaver
<target name="weave" depends="compile" description="handles Kilim byte code weaving">
<java classname="kilim.tools.Weaver" fork="yes">
<classpath refid="classpath" />
<arg value="-d" />
<arg value="./target/classes" />
<arg line="./target/classes" />
</java>
</target>
更改代码之后,我就可以在运行时随意利用 Kilim 了,只要我在类路径中包含了它的 .jar 文件。
在运行时使用 Kilim
将这两个角色应用到实际中就像在 Java 代码中应用两个普通的 Thread 一样。您使用同一个共享 sharedMailbox 实例创建并扩展两个角色实例,然后调用 start 方法来实际设置它们。
更多精彩
赞助商链接