我正在运行一个线程将'数据'放到屏幕上。 线程的要点是阻止这个函数的阻塞,这样我就可以在数据返回的时候向套接字发送数据。红宝石线程仍然阻塞
def msg_loop()
t1 = Thread.new{
loop do
msg = @socket.recv(30)
self.msg_dis(msg)
end
}
t1.join
end
但是,如果我跑
myclass.msg_loop
myclass.send_msg("message to send")
功能send_msg永远不会运行,没有比当msg_loop没有线程不同。
也许你想要一个Actor模型?有关信息,请参阅http://rubini.us/doc/en/systems/concurrency/或http://celluloid.io/。 – 2014-09-13 15:54:43