fiber相关内容
这个问题不是关于如何在 Ruby 1.9.1 中使用枚举器,而是我很好奇它们是如何工作的.这是一些代码: class Bunk定义初始化@h = [*1..100]结尾定义每个如果 !block_given?enum_for(:each)别的0.upto(@h.length) { |i|产量@h[i]}结尾结尾结尾 在上面的代码中我可以使用e = Bunk.new.each,然后e.next,
..
我不明白为什么在函数 middleFunc() 中,当 entry_point(arg) 在 if ( setjmp(中) ) 语句. #include #include jmp_buf 开始,中间,结束;void finalFunc(void *v){printf("你好\n");返回 ;}void middleFunc(void (*entry_point)(void *), void *
..
线和光纤有什么区别?我听说过红宝石中的纤维,也听说过它们可以用其他语言提供,有人可以简单地向我解释一下线程和纤维之间的区别是什么. 解决方案 在最简单的术语中,线程通常被认为是抢占式的(尽管根据操作系统的不同,线程不一定总是如此),而光纤则被认为是抢占式的.轻巧的协作线程.两者都是您的应用程序的单独执行路径. 对于线程:当前执行路径可随时被中断或抢占(注意:此语句是一种概括,可能并不
..
我正在读并发。我有一个有点在我的头有一些令人困惑的类似定义的术语。即: 处理 主题 线程“ 我的印象是,区别在于(1)是真正的并行还是多路复用; (2)是否在CPU,OS或程序中管理; 有关这些并行方法之间的区别的简明和明确的指南吗? p> 解决方案 好的,我要尽我所能。在任何地方都有警告,但我会尽我所能让我理解这些术语,并引用一些与我给出的定义近似的东西。 流
..
我想要获得一个轻量级,便携式光纤库与MIT许可证(或松动)。 Boost.Coroutine不合格(不轻量级),也不是便携式Coroutine库和Kent C ++ CSP(都是GPL)。 编辑:你能帮我找到一个? :) 解决方案 Libtask :MIT许可证 Libconcurrency :LGPL(a比MIT稍微紧凑,但它是一个功能库。) p>
..
我期待在C#的方式来实现协同例程(用户调度的线程)。当用c ++我用纤维。我在网上看到纤维在C#中不存在。我想获得类似的功能。 有没有“正确”的方式来实现在C#中的协同程序? 我也曾想过实施这个使用线程获取有关调度程序线程一个执行互斥+ 1,它释放此互斥每个协程。但这似乎非常昂贵的(它迫使每个协同程序之间的上下文切换) 我也看到了产量迭代器的功能,但据我所知,你不能在一个屈服内部
..
所以我有一个关于纤维同事聊天并翻起从2003年本文,使用说明在C#中协同程序的实现光纤API。 收益本文是.NET 1.1,实施,因此早于收益回报率语法出现在.NET 2.0。 这肯定看起来,乍一看,这里的实现是可能更快,可以扩展到多个CPU的相当好。 有没有人用过吗? 解决方案 我没用过它,但我有这个问题的兴趣。这里有一个很好的实现协同程序在C#中使用循环调度程序: H
..
我读 http://olk.github.io/libs/fiber/doc/html/ 在我看来,与Boost.Fiber C ++是越来越接近Erlang的有成千上万的“流程”的能力,也被称为“绿色工艺[主题]”
..
要求“网/ HTTP”网址= [ {'链接'=>'http://www.google.com/“}, {'链接'=>'http://www.yandex.ru/“}, {'链接'=>'http://www.baidu.com/'} ]urls.each做| U | U ['内容'] =净:: HTTP.get(URI.parse(U ['链接'])) 结束打印网址 这code工作
..
出的比什么都好奇,我一直在寻找一套C#/。NET类,支持光纤/协同例程(的 Win32版本),并没有任何运气。 有谁知道这样的野兽? 解决方案 你见过这样的: 标题“实现协同程序的.NET通过包装非网管型光纤API” 在MSDN杂志的2003年9月发行 http://msdn.microsoft.com/en-us/magazine/ cc164086.aspx
..