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