昨天我读了这篇关于JRuby中EngineYard并发性的伟大文章,我意识到我需要充分利用我在Ruby中的并发技巧,这里提到Ruby,我的意思是它可以是Ruby的所有实现:JRuby、红宝石磁共振成像、鲁比纽斯、Rubyon鹦鹉/ 红衣主教,除了IronRuby之外,我不在Windows中编写代码。
我从Haskell世界学到的东西,特别是从西蒙佩顿琼斯,他在录像里说那里学到的,OOP都是关于状态的。
注意:当我提到Haskell时,我非常缺乏经验,我只使用看了一些关于哈斯克尔的好视频,解决了Haskell中很少(少于10)的euler项目,读过一些好的Haskell书籍和教程,我从来没有用Haskell编写过专业的代码,我只是在Haskell,ex中读了一些源代码。小狗,暗黑族和其他一些Haskell代码--我不记得源代码了。
我可能想用Jaskell来欺骗并发性,只要我使用jruby,但这是我的长期学习计划,我想最大限度地提高我在ruby的并发技能,您有什么建议让我在ruby中学习并发性吗?我希望有一种头第一本书可以让我在Ruby中学习并发性。在工程场文章和Haskell的启发下,在ruby中使用各种策略/如何解决并发问题。也许是一些很好的可下载视频,这些视频可以一步一步地解释,以加强我关于并发的基本知识,然后具体地移到ruby中的并发性。
建议?谢谢。
发布于 2011-09-26 21:06:41
为了让您开始,首先阅读红宝石并发性解释以获得一个概述。请注意,一般来说,Ruby社区似乎发现并发性是一个新的、有争议的话题,而且人们在关于如何在Ruby中或通过Ruby实现并发性的许多细节上争论不休。寻找基本面,不要陷入争论的琐事!
关于清晰性的一个建议是将并发的思想从多线程中分离出来,而多线程只是一种实现方法。线程是实现并发的一种方式,但还有其他方法;特别是,如并发性是Ruby中的一个神话中提到的那样,查看进程并行性。
演员模型的并发方法现在是通过多种语言实现的,红宝石与演员并发还简要介绍了如何通过Ruby实现参与者。在许多情况下,参与者可以简化并发,并且可以帮助您避免一些更棘手的错误。
Ruby社区已经实现了一个纤维级,以在Ruby中提供“轻量级协作并发”。您肯定希望遵循红宝石纤维:关于的新并发特性的8个有用的读取中的一些链接来理解该语言中的新添加内容。
请注意,如“引擎场”所述、JRuby和Ruby在不同的虚拟机上运行,这些差异可能会对并发实现产生巨大的影响,无论是可能的还是如何实现的。
您的问题是一个很有价值的问题,因为Ruby刚刚进入并发域,您可以成为“早期采用者!”祝你有价值的追求好运!
https://softwareengineering.stackexchange.com/questions/95454
复制相似问题