调度线程而不停止线程



如果我有这样的内容:

require 'xmpp4r' # xmpp4r is a ruby library for xmpp. 
  xmppobject.add_meessage_callback { |m|
    # do something with |m|
  }
Thread.stop

,主线程被置于睡眠状态,然后由回调启动的线程才继续运行。

但是如果我有这样的东西:

require 'xmpp4r'
  class Foo::App::Bar < Foo::App::Baz
    def method1
      xmppobject.add_message_callback { |m|
        # do something with |m|
      }
    end
end

,其中属于Foo::App的主线程必须始终运行以使应用程序工作,我不能做一个线程。停在它上面,回调的线程就不能做它的工作了。

这是关于jruby的,我在irc上得到的建议是:1)使用纤维或2)条件变量。有人说这里不适合纤维。我刚刚开始使用线程(任何类型),因此将感谢有关这方面的任何建议。

结果不是问题。我被Foo::App抛出的错误误导了。

相关内容

  • 没有找到相关文章

最新更新