0
我有一個線程的$ 初始化調用下面的代碼:Python:爲什麼這個非阻塞調用recv塊?
self.conn = copy.deepcopy(conn)
self.conn.setblocking(0)
conn是一個插座,並作爲參數傳遞給$ 初始化 每個線程臨危獨特的插座傳遞。在run方法,我有:
self.running = True
self.conn.send("Connected")
print self.name, "has a timeout of", self.conn.gettimeout()
while self.running:
try:
now = self.conn.recv(8192)
print "Recieved:", now, "\n\tFrom:", self.name
self.process(now)
except socket.error:
raise
print "hi from", self.name
time.sleep(1)
超時打印爲0.0,但「喜從threadname」僅打印出來時,收到一條消息,異常從未提出!它看起來好像recv方法阻塞,但它爲什麼會這樣做?
你是從空轉呢? – thegrinner
如果每個線程都得到一個唯一的套接字,爲什麼你要做一個副本? – agf
@thegrinner,否 – nobody