Java开发2.0: Kilim简介 - 编程入门网
了角色模型的概念。在 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 GloverCalculation 清单 1 给出了这个简单的 Calculation 类型。您会注意到这个类型不需要任何特殊的 Kilim 代码。 实际上,它只是一个再普通不过的 Java bean。 清单 1. 一个 Calculation 类型的消息
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |