タイトルに書いた通り
コード例:
import gevent
from gevent.queue import Queue
class Worker(gevent.Greenlet):
def __init__(self, sock):
self.queue = Queue()
self.sock = sock
super(Worker, self).__init__()
def _run(self):
self.running = True
while self.running:
msg_from_queue = self.queue.get() # block call
msg_from_sock = self.sock.recv(128) # block call
worker = Worker(sock)
worker.start()
私はワーカーが2つのイベントを処理したい:
- 靴下からのメッセージ受信
- キューからメッセージを取得
しかし、2つはすべてブロック呼び出しです
労働者が靴下とキューから同時に取得できるようにするにはどうすればよいですか?