自己寫的線程池

來源:互聯網
上載者:User
#!/usr/bin/python#coding=utf-8#http://docs.python.org/library/threading.htmlimport threading, time, randomfrom collections import dequeclass threadPool(object):    def __init__(self, maxNum = 10):        self.maxNum = maxNum        self.deque = deque()    def push(self, target, args = None):        t = threading.Thread(target=target, args=args)        self.deque.append(t)    def run(self):        while True:            #隊列沒有進程就退出            if len(self.deque) == 0: break            if threading.activeCount() < self.maxNum + 1:                t = self.deque.popleft()                t.start()            time.sleep(0.00001) #減少CPU的損耗# Define a function for the threaddef print_time( threadName, delay):    print "%s: %s\t%s" % ( threadName, time.ctime(time.time()) , delay)    time.sleep(delay)    if __name__ == '__main__':    pool = threadPool(2)    for i in range(1000):        pool.push(target=print_time, args=("Thread-%d" % i, random.randint(1, 100) * 0.001))    pool.run()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.