标签: fiber

线和光纤有什么区别?

线和光纤有什么区别?我听说过来自红宝石的纤维,我读过听过它们有其他语言版本,有人可以用简单的语言向我解释一下螺纹和纤维之间有什么区别.

multithreading coroutine fiber

167
推荐指数
9
解决办法
4万
查看次数

工艺,线程,绿线,原始线程,纤维,协同程序:有什么区别?

我正在阅读并发性.对于那些含有令人困惑的类似定义的术语,我有点过头了.即:

  • 流程
  • 主题
  • "绿线"
  • Protothreads
  • 纤维
  • 协同程序
  • Go语言中的"Goroutines"

我的印象是,区别在于(1)是真正的并行还是多路复用; (2)是在CPU,OS还是在程序中管理; 和(3..5)我无法辨认的其他一些事情.

这些并行方法之间的差异是否有简明扼要的指导?

parallel-processing concurrency multithreading process fiber

46
推荐指数
2
解决办法
7628
查看次数

C#中的协同程序

我正在寻找在c#中实现协同例程(用户调度线程)的方法.使用c ++时我使用的是光纤.我在互联网上看到C#中不存在光纤.我想获得类似的功能.

有没有"正确"的方法在c#中实现协同程序?

我曾想过使用在调度程序线程上获取单个执行互斥锁+ 1的线程来实现它,该线程为每个协同程序释放这个互斥锁.但这似乎非常昂贵(它强制每个协程之间的上下文切换)

我也看过了yield迭代器的功能,但据我所知,你不能在内部函数中产生(仅在原始的ienumerator函数中).所以这对我有点好处.

c# coroutine fiber

40
推荐指数
4
解决办法
5万
查看次数

.net中是否有光纤api?

出于好奇心,我一直在寻找一套C#/ .net类来支持光纤/协同程序(win32版本)并且没有任何运气.

有人知道这样的野兽吗?

.net c# fiber

13
推荐指数
3
解决办法
9670
查看次数

使用Boost.Fiber,c ++是否更接近Erlang风格的流程/线程?

我正在阅读http://olk.github.io/libs/fiber/doc/html/在我看来,使用Boost.Fiber C++正在接近Erlang拥有数千个"进程"的能力,也被称为"绿色"进程[threads]" http://en.wikipedia.org/wiki/Green_threads.

我的问题是,是Boost.Fiber为生产做好准备,还有现在 ç有更好的文档和示例++的替代品?有人提到轻量级线程,但我似乎无法找到它的引用.最后一个问题是,为什么C++标准不包括Fibers?

我对此感兴趣的原因是因为我有实时更新,其中值更改可能会影响(产生)数百个/小型的小型但令人尴尬的并行计算.imo,C++线程模型不能很好地工作.请不要使用GPU,因为它目前需要很长时间才能将信息传输到GPU或从GPU传输信息.

我意识到Erlang远不止这个,所以请不要在一般情况下教我Erlang vs C++.

erlang boost real-time fiber c++11

13
推荐指数
1
解决办法
7550
查看次数

Coroutine与纤维差异澄清

在书中Linux System Programming, 2nd Edition,协同程序和光纤之间的区别解释如下:

协程和光纤提供的执行单元甚至比线程更轻(前者在它们是编程语言构造时是它们的名称,后者在它们是系统构造时).

我有一些Coroutines(语言结构)的例子,但无法找到Fibers的例子.

任何人都可以提供一些光纤(系统构造)的例子吗?

coroutine fiber

12
推荐指数
1
解决办法
4559
查看次数

轻巧,便携的C++光纤,MIT许可证

我想获得一个轻便的便携式光纤库,它具有MIT许可证(或更宽松).Boost.Coroutine不符合(不轻量级),也没有Portable Coroutine Library和Kent C++ CSP(都是GPL).

编辑:你能帮我找一个吗?:)

c++ portability licensing fiber

11
推荐指数
3
解决办法
1万
查看次数

异步发出多个HTTP请求

require 'net/http'

urls = [
  {'link' => 'http://www.google.com/'},
  {'link' => 'http://www.yandex.ru/'},
  {'link' => 'http://www.baidu.com/'}
]

urls.each do |u|
  u['content'] = Net::HTTP.get( URI.parse(u['link']) )
end

print urls
Run Code Online (Sandbox Code Playgroud)

此代码以同步方式工作.第一个请求,第二个,第三个.我想异步发送所有请求并urls在完成所有请求后打印.

最好的办法是什么?纤维是否适合这种情况?

ruby concurrency asynchronous fiber

11
推荐指数
4
解决办法
1万
查看次数

幕后的Erlang进程是什么?

我对Erlang的了解非常有限,但据我所知,它可以以非常低的成本产生"过程".

所以我想知道,幕后的那些"过程"是什么?

它们是纤维吗?主题?延续?

concurrency erlang multithreading fiber

9
推荐指数
1
解决办法
2305
查看次数

纤维用例

我读了很多关于Fibersgreen threads或我们可以给用户态线程的任何其他名称。我开始阅读文档和教程(这些是 C++ 链接,但我不需要特定语言):

但是,我似乎无法掌握有关纤维的要领。我知道纤程是协作多任务的一种方式,但据我所知,有关实际情况下线程和纤程之间相互作用的文档很少。

纤维有哪些实际用例

例如,每个文档实际上都以异步 I/O 为例,但如果我没有 I/O 绑定问题怎么办?例如,如果我的问题是计算大文件中的单词怎么办?在这里,我只是在线程之间拆分文件,纤维可以以某种方式提供帮助吗?我想像数值问题(例如,矩阵/向量运算)这样的 CPU 密集型计算不适合纤维,但同样,我可能完全错了。

c++ multithreading boost fiber

8
推荐指数
1
解决办法
4818
查看次数