文章:Ruby 中的 Concurrency、Actors 和 Rubinius——MenTaLguY 访谈
- 2008-03-03
本文字数:537 字
阅读完需:约 2 分钟
随着最近大家对Erlang和几乎所有能使并发程序设计变得简单的东西趋之若骛,一大堆不熟悉的名词冒了出来。不过在计算机界,这些技术可都不是新的。
Actors的概念已经出现了几十年了,但直到最近才在 Erlang 的推动下浮出水面,是 Erlang 令 Actor 风格的编程变得容易。它使用轻量级进程、简洁的语法来给进程发送消息,并在处理接受消息时使用模式匹配。一个叫做 Revactor 的 Ruby 1.9 的库给 Ruby 加入了 Erlang 风格的 Actors。
协程(Coroutines)也已经出现很长时间了,在许多语言中呈现不同的形式。它最开始作为并发性原语,在 60 年代由于预定线程的流行而消失于公众的视线。不过它在某些语言中还保留了下来。Python 曾经在有段时间具有一种特别的协程,即 Generator 特性。 Lua 也曾具有完整的协程。像 C 之类的语言也曾有协程库,例如 libtask 和 Protothreads 。 Ruby 1.9 加入了称为Fibers的特性,既可以完全做为协程使用,也可以用通过 Generator 来使用。
我们采访了MenTaLguY,他作为 Ruby 社区的会员,长期致力于并发程序的各个方面。这篇访谈力图透视 Actors 和协程,并探究他们与Rubinius的关系。Rubinius 也有一套自己的并发程序原语,例如用于线程通讯的通道(Channel)。
更多内容推荐
开篇词 | JavaScript 的进阶之路
这门课的初衷,就是让学习JavaScript的你,能够对这个开始比较不那么“专业”的语言,有一个系统的专业理解。帮助你一步一个脚印,把点连成线,把线连成面,把面搭建起一座空间立体的“思维大厦”。
2022-09-19
Effective Ruby LiveLessons——Sam Phippen 访谈
由Sam Phippen制作的Effective Ruby LiveLessons,是一系列讲解了专业的Rubyists的最佳实践的视频教程,它针对各个阶层的Ruby程序员。视频教程包含了亲自示范,来帮助观看者理解每个项目是如何实行的。InfoQ和制作者谈了一些有关视频中可以学到的课程,以及Ruby on Rails的最佳实践。
PyParallel:Python 的一个快速并行版本
By combining asynchronous I/O with a shared-nothing architecture, PyParallel research project is able to execute code in a parallel context faster than it can using CPython’s normal interpreter. And it does this without removing the GIL. The secret, no reference counting or garbage collection of any kind.
2010 年 InfoQ 中文站 Ruby 社区回顾
2010年刚刚过去,感谢大家在过去一年里对InfoQ中文站的关心与支持。在踏上新的征程前,让我们先来回顾一下去年一年中InfoQ中文站Ruby社区里都有哪些内容,大家又在关注什么。
Google 编程之夏和 Ruby 编程之夏中的动态语言项目
夏日已至,又到了学生们有偿参与开源项目的时候了。作为前辈级的活动,Google编程之夏为Ruby开发者提供了一系列的项目。还有Ruby编程之夏活动,通过社区资助20个Ruby和Ruby on Rails的项目。我们来了解一下它们为Ruby和其他动态语言提供了哪些项目以供选择。
Erlang 开源 20 周年:这门编程语言见证了互联网的技术成长
本文回顾了Erlang开源20年来的发展历程,并展望了Erlang生态系统的未来。
为什么能有上百万个 Goroutines,却只能有上千个 Java 线程?
本文通过Java和Golang在底层原理上的差异,分析了Java为什么只能创建数千个线程,而Golang可以有数百万的Goroutines,并在上下文切换、栈大小方面对两者的实现原理进行了剖析。
Scrapy 并发参数优化原理
2022-09-08
Rust 兴起,Python 兴趣正浓丨 InfoQ 编程语言趋势报告
InfoQ 英文站的编辑们按照技术采用生命周期的理论对各大编程语言在现阶段的发展趋势进行了分析,Rust兴起,Python兴趣正浓。
FlightCaster 秘笈——Clojure 和 Rails
FlightCaster是一个实时航班延误预告网站,其后台统计分析构建在Clojure和Hadoop上。它的Web前台是用Ruby on Rails构建的,且托管于Heroku上。我们就Clojure、函数编程及有意尝试的OOP开发者应该掌握的技巧对等话题采访了Bradford Cross。
Elixir 从入门到放弃
作者在日常工作中需要经常与 Elixir 这门编程语言打交道
开篇词|云时代来临,如何学好 JVM 应对未来的挑战?
云时代来临,如何学好JVM应对未来的挑战?
2023-08-21
商业数据分析利器 - R 语言
2022-11-07
R 语言的预测分析高级方法
2023-01-12
标准化对 Ruby 意味着什么
Ruby的标准化工作正在持续推进:2008年正式宣布后,已经发表了Ruby标准的第一版草稿。这对RubySpec(可执行的Ruby规范)和其他Ruby实现意味着什么呢?
Ruby VM 近况:1.9.2 增加 DTrace 支持、Rubinius 1.0 RC2 添加安装程序、IronRuby IDE
Rubinius 1.0 RC2添加了二进制安装程序,Ruby 1.9.2将支持DTrace。IronRuby离1.0又近了一步,SharpDevelop 3.1开始支持IronRuby。此外,WEBRick用户应该考虑升级到最新的Ruby 1.8.x和1.9.1,因为最近发现了一个缺陷。
Elixir:可能成为下一代 Web 开发语言
Elixir是一种动态函数式语言,设计用于构建可扩展、可维护的应用程序。Lau Taarnskov是一名有着20多年Web软件开发经验的开发人员。他认为,Elixir将会对Web开发领域产生重大影响。近日,他在个人博客上阐述了这一观点。
《Elixir in Action》书评及作者问答录
《Elixir in Action》是由Manning所出版的一本新书,本书为读者介绍了Elixir这门语言以及Erlang虚拟机,同时也讨论了与并发编程、容错以及与高可用性相关的话题。InfoQ有幸与本书的作者Saša Jurić进行了一次访谈。
协程简介
2022-09-08
五种注定将要走向衰败的编程语言
Nick Kolakowski表示,如果你的职业生涯与下面这些编程语言有关,建议你找机会充实一下其他方面的技能。
暂无签名
推荐阅读
1.Go 基本语法和 Web 框架起步
2023-09-25
Ruby 之父:不要违背开发人员的本能
22 个必知编程语言之「Erlang」
13|独立王国:初步了解 Rust 异步并发编程
2023-11-17
Ruby 到底怎么了?
开篇词|拥抱 Rust 浪潮,迎接更极致的编程体验
2023-10-23
同步与异步 Python 有何不同?
电子书
大厂实战PPT下载
换一换 张潇 | 矩阵起源 产品架构师
陈渤 | 华为诺亚方舟实验室 高级算法工程师
任跃华 | 快手 前端工程师
推荐阅读
1.Go 基本语法和 Web 框架起步
2023-09-25
Ruby 之父:不要违背开发人员的本能
22 个必知编程语言之「Erlang」
13|独立王国:初步了解 Rust 异步并发编程
2023-11-17
Ruby 到底怎么了?
开篇词|拥抱 Rust 浪潮,迎接更极致的编程体验
2023-10-23
同步与异步 Python 有何不同?
评论