2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Dataflow:Ruby 的声明式并发控制模型

  • 2009-05-12
  • 本文字数:867 字

    阅读完需:约 3 分钟

由于 Ruby 语言受到了一些函数式程序设计技术的影响,有些 Ruby 程序员随之采纳了 Erlang 或者 Haskell 的思想,甚者建立起了从 Ruby 到这些语言的桥梁,比如: Erlectricity

Larry Diehl 基于 Oz 语言的 Unification 概念,为 Ruby 引入了声明式并发控制模型。Oz 是一种多维编程语言,它主要作为一种函数式(包括延迟计算和即时计算)、分布式和并发编程语言而著称,但同时它也支持约束、逻辑、命令式和面向对象编程。

随着计算机中核心处理器数量的不断增加,Larry 希望声明式并发模型能给 Ruby 语言带来一些好处

  • 更加易读的代码
  • 简单但强大的并发控制

为了实现这个目标,Larry 应用了《Concepts, Techniques, and Models of Computer Programming》一书中描述的数据流线程行为(Dataflow threading behavior)概念:

如果一个操作试图使用一个未绑定的变量,该怎么办?如果纯粹从审美角度来看,这个操作应该等待,直到其它线程绑定了这个变量再继续进行。这种“文明礼貌”的线程行为被称之为数据流线程行为(Dataflow threading behavior)。

为了用 Oz 实现这个概念,Larry 应用了 Unification:

Unification 的思想是用逻辑方程来描述值,而逻辑方程可以自动被一些合一算法(unification algorithm)所解决。

那么在实际应用中,我们就可以这样编写代码了(这段代码来自 Dataflow 项目网站):

复制代码
# Local variables
include Dataflow
local do |x, y, z|
# notice how the order automatically gets resolved
Thread.new { unify y, x + 2 }
Thread.new { unify z, y + 3 }
Thread.new { unify x, 1 }
z #=> 6
end

用 local 或者 declare(实例变量)创建一些变量,然后用 unify 来绑定这些变量。

Oz Ports (非确定行为) 或者 Erlang 化 Actors 就是两个很好的例子。

但 Brian Morearty 也指出了对 Dataflow 调试、性能和内存的一些有意思的担心 。随后 Larry Diehl 在 Brian 的博客中进行了解释

有一点需要注意的是,由于这个库支持绿色线程(green threads)和本地线程池实现,它已经让 JRuby 在 MRI 上光芒四射了。

查看英文原文: Declarative Concurrency For Ruby With Dataflow

2009-05-12 00:162320

评论

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

Java后端问题排查经验

WizInfo

英特尔成为openEuler社区黄金捐赠人,共建最具创新的开源社区

彭飞

SD-WAN网络的可扩展性解析

Ogcloud

网络 SD-WAN 组网

Pipeline 助您轻松驾驭海量数据!

观测云

数据分析 日志 pipeline

测试开发 | AI在人工和服务领域的崭新角色

测吧(北京)科技有限公司

测试

汽车行业数字化转型,迎来新机遇!

优秀

数字化转型 汽车行业 汽车行业数字化转型

浅聊PAM市场价值

尚思卓越

运维 网络安全

演讲回顾:半导体设计中的数字资产管理最佳实践

龙智—DevSecOps解决方案

数字资产管理

武汉 Linux 爱好者线下沙龙:WHLUG 2023 收官!不容错过!

nn-30

Linux 技术交流 线下沙龙 WHLUG LUG

面试官问我:线程锁导致的kafka客户端超时,如何解决?

华为云开发者联盟

开发 华为云 华为云开发者联盟 线程锁

MongoDB与大数据处理:构建高性能分布式数据库

互联网工科生

mongodb 非关系型数据库

软件测试/测试开发/人工智能丨ROC 与 AUC 的含义

测试人

人工智能 软件测试

如何给图数据库 NebulaGraph 新增一种数据类型,以 Binary 为例

NebulaGraph

数据库

软件测试/测试开发/人工智能丨如何通过分组 AUC 从不同的维度验证模型的能力

测试人

人工智能 软件测试

大模型应用产品「归一妙计」亮相,AI Agent落地广告投放场景

武凯说

人工智能 领域模型 GPT 营销自动化 全媒体广告投放代理、

简述SD-WAN组网的五大技术优势

Ogcloud

网络 网络加速 SD-WAN 组网

活动 | Mint Blockchain 赞助支持清迈 WAMOTOPIA 线下活动

NFT Research

blockchain NFT L2

第五代英特尔至强可扩展处理器AI性能大幅提升,英特尔加注推动人工智能无处不在

E科讯

大模型时代,未来所有公司都是 Data+AI 公司

Kyligence

人工智能 数据分析

测试开发 | 智能农业引领农业革新,人工智能携手农业改写未来

测吧(北京)科技有限公司

测试

测试开发 | AI与生物医学:加速医学研究的新引擎

测吧(北京)科技有限公司

测试

测试开发 | 保护数据隐私的分布式学习方法:构建安全智能未来

测吧(北京)科技有限公司

测试

整体模块化区块链技术引领区块链大规模采用

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Dataflow:Ruby的声明式并发控制模型_Ruby_Sebastien Auvray_InfoQ精选文章