相关疑难解决方法(0)

Twisted中的select/poll与epoll反应器的注意事项

我所阅读和体验过的所有东西(基于Tornado的应用程序)都让我相信ePoll是基于Select和Poll的网络的自然替代品,特别是对于Twisted.这让我变得偏执,对于更好的技术或方法而言,这是非常罕见的.

阅读epoll和替代品之间的几十个比较表明,epoll显然是速度和可扩展性的支柱,特别是它以线性方式扩展,非常棒.那说,处理器和内存利用率如何,epoll仍然是冠军?

networking scalability capacity-planning twisted

91
推荐指数
1
解决办法
2万
查看次数

"反应堆模式"及其应用的简单解释

反应堆模式在维基百科中解释,它有点过于抽象.你能用更具体的方式描述这种模式吗?理想情况下,使用代码片段或描述反应器模式的一些应用的高级类图.

design-patterns

83
推荐指数
2
解决办法
3万
查看次数

reactor vs proactor

谁能解释反应堆模式和前驱模式之间的区别?我知道在reactor-pattern中,操作是同步的,并且在proactor中它们是异步的,并且在反应器中操作由处理器完成,处理器由反应器移交给客户端.(如果我错了,请纠正我)

另外,在故障安全的情况下使用哪种模式,哪些模式用于快速失败?

java design-patterns

14
推荐指数
2
解决办法
5346
查看次数

红宝石块内的赛璐珞异步不起作用

尝试在我的工作示例中实现Celluloid 异步似乎表现出奇怪的行为.

这里我的代码看起来

 class Indefinite
    include Celluloid

      def run!
         loop do 
           [1].each do |i|
             async.on_background
           end
         end
      end 


       def on_background
         puts "Running in background" 
       end
   end

   Indefinite.new.run!
Run Code Online (Sandbox Code Playgroud)

但是当我运行上面的代码时,我从未看到过" 在后台运行 "

但是,如果我睡觉,代码似乎工作.

class Indefinite
   include Celluloid

    def run! 
      loop do 
        [1].each do |i|
          async.on_background
        end
        sleep 0.5
      end 
    end


   def on_background
     puts "Running in background" 
   end
 end

 Indefinite.new.run!
Run Code Online (Sandbox Code Playgroud)

任何的想法?为什么在上述两个场景中存在这样的差异.

谢谢.

ruby celluloid ruby-2.2

14
推荐指数
1
解决办法
1426
查看次数