當前位置: 首頁>>代碼示例>>Python>>正文


Python Queue.put_nowait方法代碼示例

本文整理匯總了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)
開發者ID:JimmXinu,項目名稱:calibre,代碼行數:38,代碼來源:pool.py


注:本文中的polyglot.queue.Queue.put_nowait方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。