0
是否有某種方法來關閉一個特定的掛接recv zmq套接字從Python中的另一個線程沒有打破可能正在使用的其他套接字?以下代碼似乎不會退出;更換sock.close()
與ctx.destroy()
導致其退出,但顯然會摧毀所有插座的情況下:從另一個線程關閉掛zmq套接字
import zmq
import time
import threading as th
ctx = zmq.Context()
sock = ctx.socket(zmq.ROUTER)
sock.bind('tcp://*:6000')
def shutdown():
time.sleep(5)
print 'closing'
sock.close()
t = th.Thread(target=shutdown)
t.start()
try:
sock.recv()
except zmq.ZMQError:
print 'closed'
銷燬上下文有時還會在控制檯上打印「斷言失敗」消息。 – lebedov 2012-07-08 22:58:43