Ruby pre-1.9和Ruby 1.9线程之间有什么实际区别吗?
我试图理解1.9和1.9之前的
Ruby线程之间的区别(在标准的MRI实现中),但似乎就你可以用它们实现的好处而言,它们实际上是相同的.它是否正确?
从我有限的理解: > 1.9之前的线程是“绿色线程”,这意味着它们由Ruby解释器管理,而不是操作系统.这样做的一个结果是,您永远不会实现真正的并发,因为您永远不会同时运行多个线程(即使您在多核/多处理器系统上). (但是,如果执行在不同线程之间切换,例如,如果某个程序运行而另一个程序在I / O上等待,则可以获得并发的外观.) 这是正确的,还是我错过了什么? 1.9线程与1.9之前的线程(在MRI中)有什么好处? 解决方法
我觉得有点愚蠢地提供这个作为答案,但你的描述完全符合我对情况的理解.
如果我们是对的,我应该补充说,以这种方式发展语言确实有意义. 请记住,functional编程,the Actor Model,和其他共享内存替代并行模型的要点是解决开发并行共享内存应用程序的极大困难. (“Threads considered harmful.”) 因此,对于Ruby来说,从没有任何并行到并行的所有内容都会期待太多. 目前的做法似乎是建立机制,但要保持巨大的锁定.我认为将来,单独调试和测试的功能区域将被允许并行执行,因为它们接收细粒度锁和并发测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- MT 200 Financial Institution Transfer for its Own Accou
- c# – 从Android应用程序读取Unity中的串行数据
- wpf – 如何在XAML文件中引用相同的命名空间?
- ruby-on-rails – 我可以在没有SCM的情况下部署Capistrano吗
- SPI FLASH 驱动
- postgresql安装手册
- c# – 为什么没有intellisense当LINQ语句没有where子句?
- Error Parsing XML: unbound prefix--关于Android中的xliff
- objective-c – 如何加速处理5000个独立任务的Mac应用程序?
- SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(