我想在執行其他任務時監聽一個套接字,但是我的程序只是卡在了偵聽循環中,無法執行其他任何操作。我正在使用的代碼是:Ruby執行陷入單線程
t = Thread.new do
@listener.listen
end
t.join
puts('do more stuff')
其中@listener.listen
是:
def listen
puts('listening')
while true
data = p @socket.recv(1000) # Receive
respond(JSON.parse(data))
end
end
如果我做這個節目陷在while循環和「做更多的東西」從不打印。任何人都知道爲什麼這可能會發生?
如果我擺脫了連接,但while循環未執行。程序進入監聽功能,打印「監聽」,然後立即退出該功能。 – Riddle
然後可能會有一些異常被引發到你的循環中。快速查看這是由返回nil的p方法引起的,這是你試圖用JSON稍後分析的結果。如果要顯示數據的值,請在數據前移動p – BroiSatse