本文整理匯總了Python中polyglot.queue.Queue.put_nowait方法的典型用法代碼示例。如果您正苦於以下問題:Python Queue.put_nowait方法的具體用法?Python Queue.put_nowait怎麽用?Python Queue.put_nowait使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類polyglot.queue.Queue
的用法示例。
在下文中一共展示了Queue.put_nowait方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: ThreadPool
# 需要導入模塊: from polyglot.queue import Queue [as 別名]
# 或者: from polyglot.queue.Queue import put_nowait [as 別名]
class ThreadPool(object):
def __init__(self, log, notify_server, count=10, queue_size=1000):
self.request_queue, self.result_queue = Queue(queue_size), Queue(queue_size)
self.workers = [Worker(log, notify_server, i, self.request_queue, self.result_queue) for i in range(count)]
def start(self):
for w in self.workers:
w.start()
def put_nowait(self, job_id, func):
self.request_queue.put_nowait((job_id, func))
def get_nowait(self):
return self.result_queue.get_nowait()
def stop(self, wait_till):
for w in self.workers:
try:
self.request_queue.put_nowait(None)
except Full:
break
for w in self.workers:
now = monotonic()
if now >= wait_till:
break
w.join(wait_till - now)
self.workers = [w for w in self.workers if w.is_alive()]
@property
def busy(self):
return sum(int(w.working) for w in self.workers)
@property
def idle(self):
return sum(int(not w.working) for w in self.workers)