fibers

    0热度

    1回答

    我正在尝试使用“异步导轨”,以帮助缓解使用慢速第三方服务的痛苦。 的Gemfile gem 'eventmachine' gem 'rack-fiber_pool', :require => 'rack/fiber_pool' gem 'em-synchrony', :require => ['em-synchrony', 'em-synchrony/em-http',

    0热度

    1回答

    我正忙着用Ruby来学习语言。目前,我正试图围绕纤维的概念进行研究。根据this answer,它们通常用于创建(无限)外部统计员。另一方面,这似乎与所谓的明确统计员的概念重叠。我想写一个代码片段来触发连续的素数(是的,下面的算法的运行时间为O(可怕))。我可以通过使用光纤实现它: prime_fiber = Fiber.new do primes = [2] Fiber.yi

    2热度

    1回答

    此代码奇怪的行为 3442840 5 3442840 nil 3442840 5 为什么在嵌套纤维current['a']回报nil?如何解释?

    1热度

    1回答

    我正在尝试编写一个小控制台应用程序来播放mp3。 MP3播放将由外部二进制文件处理,例如mpg123,而播放控制,播放列表等将作为curses控制台应用程序实现。 说我创建了一个“播放列表”对象,其中添加了许多音轨。当我播放曲目时,我需要在背景中调用二进制文件,同时允许UI进行响应。我也需要能够跳到下一个轨道等 我假设我需要使用线程或光纤为此?我如何控制线程? 我以前没有做过任何线程化Ruby编程

    7热度

    2回答

    我试图在Ruby中“复制”CUDA的__synchtreads()函数的行为。具体来说,我有一组N线程需要执行一些代码,然后在执行其他业务之前,在执行的中间点彼此等待。例如: x = 0 a = Thread.new do x = 1 syncthreads() end b = Thread.new do syncthreads() # x sho

    2热度

    1回答

    是否有可能检索创建当前光纤的光纤?如果我能够在创建新光纤时获得这些信息就足够了。 猴子修补Fiber#new不起作用,因为调用Fiber#current会导致“未初始化光纤”错误。

    0热度

    1回答

    我无法理解,为什么此代码不起作用。 我想要做的是使用光纤模拟同步代码行为。 require 'fiber' require 'eventmachine' def async_request(url) f = Fiber.current Thread.new do sleep 0.3 puts 'Resuming Fiber' f.resume

    2热度

    2回答

    我只是在我的Windows 7企业版64位盒上试用流星。我通过MSI安装从http://win.meteor.com,重新启动计算机并在命令提示符(管理员),做了以下内容: cd /d c:\var meteor create testapp (absolutely no response on console) 那我投保的是node.exe工作。我用基本的Hello World例子创建了一个te

    8热度

    1回答

    我不明白是怎么如下: counts = Hash.new(0) File.foreach("testfile") do |line| line.scan(/\w+/) do |word| word = word.downcase counts[word] += 1 end end counts.keys.sort.each {|k| print "

    3热度

    1回答

    假设: 有一些物体(例如,阵列a)和依赖于物体上的条件(例如,如a.empty?)。 除当前线程以外的某些线程可以操作对象(a),因此条件的评估值的真实性随时间而变化。 如何让当前线程在代码中的某个点处休眠,并在条件满足时通过推送通知继续(唤醒)? 我不想做轮询是这样的: ... sleep 1 until a.empty? ... 也许使用Fiber将是一个线索。