Questions tagged «fibers»

7
哪个对node.js上的并发任务更好?纤维?网络工作者?还是线程?
我前一段时间偶然发现了node.js,非常喜欢。但是很快我发现它严重缺乏执行CPU密集型任务的能力。因此,我开始使用Google搜索,并找到了解决这些问题的答案:光纤,Webworkers和线程(go-a-gogo)。现在使用哪个是一个混乱的问题,肯定需要使用其中的一个-毕竟,拥有一台只擅长IO且无其他优点的服务器的目的是什么?需要建议! 更新: 我在想一种落后的方法。只是需要建议。现在,我想到的是:让我们来一些线程(使用thread_a_gogo或webworkers)。现在,当我们需要更多它们时,我们可以创建更多。但是在创建过程中会有一些限制。(不是系统暗示的,但可能是因为开销)。现在,当我们超过限制时,我们可以派生一个新节点,并开始在该节点上创建线程。这样,它可以一直持续到我们达到某个极限(毕竟,过程也有很大的开销)。当达到此限制时,我们开始排队任务。每当线程空闲时,就会为它分配一个新任务。这样,它可以顺利进行。 所以,这就是我的想法。这个主意好吗?我对所有这些过程和线程东西还是有点陌生​​,所以没有任何专业知识。请分享您的意见。 谢谢。:)

2
为什么我们需要纤维
对于纤维,我们有一个经典的例子:生成斐波那契数 fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end 为什么我们这里需要纤维?我可以使用相同的Proc重写它(实际上是关闭) def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end 所以 10.times { puts fib.resume } 和 prc = clsr 10.times …
100 ruby  lambda  closures  fibers  proc 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.