在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Ruby因为其1.8版本的用户空间线程模型而饱受批评。Luc Castera在RubyNation会议上给出了通过Ruby和元组空间进行并行编程的演讲。在介绍了目前诸多应用(如Ruby 1.8、Ruby 1.9、JRuby和Erlang等)所实现的不同的线程模型之后,Luc介绍了Ruby的多进程模型(图片和引文均来自于该演讲): \\\\ 实现进程间通信有多种选择:数据库(例如在Mongrel或者Thin等应用服务器集群中使用)、RabbitMQ等队列(Nantie的解决方案)、DRB、ActiveMQ,或者元组空间。 Linda是一个协调模型,由David Gelernter和Nicholas Carriero提出,用于解决全局对象协调的问题。 Rinda最大的缺陷是其不支持持久化,这样一旦程序停止或崩溃的话,所有在元组空间中的元组则会丢失。 [Redis]和memcached很相似,但是数据集不易失。取值可以为字符串,就如同memcached一样,但是还支持使用原子操作来push/pop诸如列表和集合之类的元素\ 该API的使用范例如下: \\ts = Blackboard::TupleSpace.new\\ts.write [:calculator, :add, 1, 2]\ts.take [:calculator, :add, nil, nil]\\ 基准测试显示了Rinda和Blackboard的区别(摘自该演讲): \
当前的实现只是第一步,Luc计划弃用Redis而实现一个Erlang的Blackboard定制实现,这样就可以方便地使用Ruby这样的第三方语言进行调用。 \查看英文原文:Exploring Tuple Spaces Persistence In Ruby With Blackboard |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论