Ruby多线程打印标准

Ruby多线程打印标准,ruby,multithreading,Ruby,Multithreading,我正在用Ruby实现一个网络,我们在多线程打印时遇到了一些问题。我们有两个线程作为侦听器,所以它们总是处于打开状态(就像服务器实现一样)。我们想用这两个线程打印到stdout,但似乎一次只能打印一个线程 例如,我们有一个“驱动程序”,它解析一个文件并生成线程,我们希望在生成线程之前打印从文件解析的一些信息。生成的线程中有一些我们想要打印到stdout的内容,只是为了调试。然而,当我们运行程序时,我们看到的唯一东西是我们生成的线程的打印。我们所要做的就是用一个给定的函数启动线程并连接它。我们做错了

我正在用Ruby实现一个网络,我们在多线程打印时遇到了一些问题。我们有两个线程作为侦听器,所以它们总是处于打开状态(就像服务器实现一样)。我们想用这两个线程打印到stdout,但似乎一次只能打印一个线程

例如,我们有一个“驱动程序”,它解析一个文件并生成线程,我们希望在生成线程之前打印从文件解析的一些信息。生成的线程中有一些我们想要打印到stdout的内容,只是为了调试。然而,当我们运行程序时,我们看到的唯一东西是我们生成的线程的打印。我们所要做的就是用一个给定的函数启动线程并连接它。我们做错了什么

def populateFromFile()


    file = File.open('filename.csv')
    while( (line = file.gets) != nil)
        #do processing and populate the neighbors array

    end
    #When we do not start the thread below, we definitely see this output
    $neighbors.each {|neighbor| puts neighbor.to_s}
end

def listenerFunc
    while(true)
        command = STDIN.gets
        #when this thread is started, we ONLY see this output.
        puts command
    end
end

t1 = Thread.new{listenerFunc}
t1.join

你能提供一些代码示例吗?代码值10000字。你试了什么?对代码的描述并不像你实际写的那么多。请阅读“”。我刚刚添加了有问题的代码。您使用什么Ruby运行时(MRI、JRuby等)?不太确定,但我们使用irb,Ruby 1.9.3版。这回答了你的问题吗?