QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

Kilim:actor 模型和消息传递的 Java 实现

  • 2008-07-03
  • 本文字数:1049 字

    阅读完需:约 3 分钟

正像在“多核危机:Scala vs. Erlang ”一文中所讲的,面对当前、尤其是未来的多CPU,需要大量的并行性计算,那么并发的消息传递和actor 模型将成为一种很有希望的解决之道。这些机制在Erlang 中是完全内置的,Scala 的框架中则包含了Scala Actor 库。在Java 的世界中,同样也存在一个纯Java 的实现—— Kilim

Kilim 是一个 Java 消息传递框架,它提供了超轻量级的线程和工具,可以在这些线程之间进行快速、安全、零复制的消息传递。

Kilim 包含如下组件:一个字节码后期处理程序(“weaver”),带有多个缓冲 mailbox(多生产者,单消费者队列)的运行时库,一个用户级的调度器,以及一个类型系统。它的类型系统对消息内部的指针别名增加了某些约束,确保线程之间不会彼此干扰。

而且它的性能看起来很不错。据 Sriram Srinivasan 在 Google Tech Talk 的演讲所称,Kilim 的任务切换比 Java 的线程切换快出 1000 倍,它的消息传递比 Erlang 快 3 倍。

Kilim 的用法是在方法和参数上标注 Annotation。如果一个方法被标注为 @pausable,则说明它直接地或者间接地调用了其他可暂停的方法,这种方法在其调用链中的某处,最终会调用 Kilim 的方法,比如Actor.sleep()或者Mailbox.get()。字节码后期处理器会将这些被注释的代码转换为延续``传递风格(continuation passing style)的代码。某些语言可以直接支持“延续”。其实,之前在一些著名的 Web 框架,比如 RIFE 和 Jetty 之中,“延续”就已经改头换面出现在 Java 中了。

另外,用于参数的标注包括@free、``@cuttable 或``@safe。Sriram Srinivasan 和 Alan Mycroft 在 ECOOP 2008 的一次演讲中描述了这些参数修饰符:

这些修饰符可以理解为一个在对象树中的对象的两种正交的特性:第一,它是否被另一个对象(在后面的情况中被称为“根”)所引用;第二,它是否在结构上可以改变(它的指针型域(pointer-valued field)是否是可分配的)。第二种性质具有传递性,如果一个对象的父亲是在结构上可改变的,那么它的孩子也是。

给定这些以后,可以判定,如果一个对象是对象树的根,并且它在结构上是可改变的,则这个对象是“自由的(@free)”。一个可切割的(@cuttable)对象可能是、也可能不是根,但它是 structurally modifiable。如果一个对象具有安全(@safe)特性,则不是 structurally modifiable(由于传递性),而不关心它是否是根。

Actor 模型出现的场合越来越多,无论未来你在哪种平台上用什么语言编程,Actor 模型都会是一个十分重要的概念。

查看英文原文 Kilim - actors and message passing in Java

2008-07-03 00:276296
用户头像

发布了 53 篇内容, 共 14.0 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Luminar Neo:不只是修图,更是创意的孵化器

Rose

京东小程序数据中心架构设计与最佳实践

京东科技开发者

实际上手体验maven面对冲突Jar包的加载规则

京东科技开发者

课件ppt怎么做?3个在线网站轻松制作教学ppt!

职场工具箱

效率 职场 PPT 办公软件 AI生成PPT

数据分析的关键点有哪些?如何做好数据分析?

Aloudata

数据分析 指标平台 noetl

24年内蒙古等级保护测评机构看这里!

行云管家

网络安全 等保 等级保护 内蒙古

7月新特性 | 软件开发生产线CodeArts发布多项新特性等你体验!

华为云开发者联盟

测试计划 代码检查 企业号 8 月 PK 榜 CodeArts 2024企业号8月pk

如何构建高效的 CRUD 应用程序?

NocoBase

软件开发 crud crudapi

跨越边界:京东商品详情API的全球拓展之旅

代码忍者

Pushgateway:观测云中的实时数据监控解决方案

可观测技术

云原生

macOS Big Sur(macos11 正式版)v11.2.3 高速下载版

Rose

商品计划管理系统助力企业实现高效决策与资源配置

第七在线

无缝集成,全域监控:观测云引领企业运维新纪元

可观测技术

运维

Upgrading Public Safety Networks: Prospects of WiFi7 in Security Surveillance

wallyslilly

ipq9574 IPQ5332

pdf reader pro mac破解版 v3.2.1.0中文激活版 好用的pdf编辑阅读器

Rose

AE 2019中文版 after effects破解资源 mac/win

Rose

AE 2019中文版 AE 2019 mac破解版 AE2019安装包 After Effects安装教程

AI入门之深度学习:基本概念篇

京东科技开发者

不可重复读和幻读有什么区别

江南一点雨

Java MySQL 面试题

观测云:开放透明与知识共享的引领者

可观测技术

文档 开放生态

Waves 混音插件 完美破解版 for mac/win 安装包

Rose

Waves 混音插件 Waves破解版

实时洞察,精准掌控:观测云在企业监控中的核心优势

可观测技术

监控

苹果电脑防火墙Radio Silence for mac v3.2激活版 附安装教程

Rose

苹果电脑 mac防火墙 Radio Silence下载 Radio Silence破解版

OmniGraffle Pro mac破解版(流程图、组织结构图、网络拓扑图、电路图等)

Rose

思维导图 流程图 OmniGraffle Pro破解 OmniGraffle Pro下载

AI在商品计划领域的应用

第七在线

苹果电脑装机必备防休眠工具:InsomniaX for Mac中文版

Rose

MacBook防睡眠软件 InsomniaX for Mac

怎么用云手机进行TikTok矩阵运营

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 tiktok矩阵

智能监控:超越传统阈值的监控

可观测技术

智能监控

如何在 K8s 中实现 Pod 原地更新?

小猿姐

数据库 云计算 Kubernetes 云原生

动态之美:Motion 5特效,让视频栩栩如生 mac版

Rose

mac视频后期特效处理 Motion 5破解版 Motion中文版

简析网络安全中的伦理困境与道德守则

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 WEB安全 网安

Kilim:actor模型和消息传递的Java实现_Java_Niclas Nilsson_InfoQ精选文章