当前位置: 移动技术网 > IT编程>脚本编程>Python > python自定义线程池控制线程数量的示例

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

2019年03月19日  | 移动技术网IT编程  | 我要评论

白城电视台今日关注,河南工业大学教务系统,新浪博客排名

1.自定义线程池

import threading
import queue
import 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 threading
import queue
import time
import 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自定义线程池控制线程数量的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网