快速业务通道

Java开发2.0: Kilim简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
了角色模型的概念。在 Kilim 中,“角色” 是使用 Kilim 的 Task 类型来表示的。Task 是轻量型的线程,它们通过 Kilim 的 Mailbox 类型与其他 Task 通信。

Mailbox 可以接受任何类型的 “消息”。例如,Mailbox 类型接受 java.lang.Object。Task 可以发 送 String 消息或者甚至自定义的消息类型,这完全取决于您自己。

在 Kilim 中,所有实体都通过方法签名捆绑在一起,如果您需要同时执行几项操作,可以在一个方法 中指定该行为,扩大该方法的签名以抛出 Pausable。因此,在 Kilim 中创建并发类就像在 Java 中实现 Runnable 或扩展 Thread 一样简单。只是使用 Runnable 或 Thread 的附加实体(比如关键字 synchronized)更少了。

最后,Kilim 的魔力是由一个称为 weaver 的后期进程来实现的,该进程转换类的字节码。包含 Pausablethrows 字句的方法在运行时由一个调度程序处理,该调度程序包含在 Kilim 库中。该调度程序 处理有限数量的内核线程。可以利用此工具来处理更多的轻量型线程,这可以最大限度地提高上下文切换 和启动的速度。每个线程的堆栈都是自动管理的。

在本质上,Kilim 使创建并发进程变得轻松而简单:只需从 Kilim 的 Task 类型进行扩展并实现 execute 方法。编译新创建的支持并发性的类之后,对其运行 Kilim 的 weaver,您会实现显著的性能提 升!

Kilim 最初是一种外来语言,但它带来了巨大的回报。角色模型(以及后来的 Kilim)使编写依赖于 类似对象的异步操作对象变得更加简单和安全。您可以 使用 Java 的基本线程模型进行同样的操作(比 如扩展 Thread),但这更具挑战性,因为它会将您带回锁和同步的世界中。简而言之,将您的并发编程 模型转换为角色使多线程应用程序更容易编码。

Kilim 实战

在 Kilim 的角色模型中,消息通过 Mailbox 在进程之间传送。在许多情况下,您可以将 Mailbox 看 作队列。进程可以将一些项加入邮箱中,也可以从邮箱获取一些项,而且它们既可以采用阻塞方式,也可 以采用非阻塞方式来这样做(阻塞对象是底层 Kilim 实现的轻量型进程,而不是内核线程)。

作为在 Kilim 中利用邮箱的一个示例,我编写了两个角色(Calculator 和 DeferredDivision),它 们从 Kilim 的 Task 类型扩展而来。这些类将以一种并发方式协同工作。DeferredDivision 对象将创建 一个被除数和一个除数,但它不会尝试将这两个数相除。我们知道除法运算很耗资源,所以 DeferredDivision 对象将要求 Calculator 类型来处理该任务。

这两个角色通过一个共享 Mailbox 实例通信,该实例接受一个 Calculation 类型。这种消息类型非 常简单 —— 已提供了被除数和除数,Calculator 随后将执行计算并设定相应的答案。Calculator 然后 将这个 Calculation 实例放回共享 Mailbox 中。

Java开发2.0: Kilim简介(3)

时间:2011-10-22 IBM Andrew Glover

Calculation

清单 1 给出了这个简单的 Calculation 类型。您会注意到这个类型不需要任何特殊的 Kilim 代码。 实际上,它只是一个再普通不过的 Java bean。

清单 1. 一个 Calculation 类型的消息

import java.math.BigDecimal; public class Calculation {   private BigDecimal dividend;   private BigDecimal divisor;   private BigDecimal answer;   public Calculation(BigDecimal dividend, BigDecimal divisor) {   super();   this.dividend = dividend;   this.divisor = divisor;   }   public BigDecimal getDividend() {   return dividend;   }   public BigDecimal getDivisor() {   return divisor;   }   public void setAnswer(BigDecimal ans){

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号