首页 > 编程 > Python > 正文

python自定义线程池控制线程数量的示例

2019-11-25 13:14:04
字体:
来源:转载
供稿:网友

1.自定义线程池

import threadingimport Queueimport time queue = Queue.Queue()  def put_data_in_queue():  for i in xrange(10):    queue.put(i)  class MyThread(threading.Thread):  def run(self):    while not queue.empty():      sleep_times = queue.get()      time.sleep(sleep_times)      queue.task_done()  def main_function():  threads_num = 6  while True:    put_data_in_queue()    for i in xrange(threads_num):      myThread = MyThread()      myThread.setDaemon(True)      myThread.start()    queue.join()    time.sleep(60)

2.多线程与signal信号的监控结合

import threadingimport Queueimport timeimport signal queue = Queue.Queue()stop = False  def receive_signal(signum, stack):  signal.signal(signal.SIGTERM, original_sigterm)  global stop  stop = True  def put_data_in_queue():  for i in xrange(10):    queue.put(i)  class MyThread(threading.Thread):  def run(self):    while not queue.empty():      sleep_times = queue.get()      time.sleep(sleep_times)      queue.task_done()  def main_function():  threads_num = 6  while not stop:    put_data_in_queue()    for i in xrange(threads_num):      myThread = MyThread()      myThread.setDaemon(True)      myThread.start()    queue.join()    time.sleep(60)  if __name__ == "__main__":  original_sigterm = signal.getsignal(signal.SIGTERM)  signal.signal(signal.SIGTERM, receive_signal)  main_function()

以上这篇python自定义线程池控制线程数量的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表