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

 更新时间:2019年02月22日 09:05:40   作者:AdgerZhou  
今天小编就为大家分享一篇python自定义线程池控制线程数量的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

相关文章

  • python 使用递归回溯完美解决八皇后的问题

    python 使用递归回溯完美解决八皇后的问题

    今天小编就为大家分享一篇python 使用递归回溯完美解决八皇后的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python的setattr函数实例用法

    python的setattr函数实例用法

    在本篇文章里小编给大家整理了一篇关于python的setattr函数实例用法的相关知识点内容,有兴趣的朋友们学习下。
    2020-12-12
  • python如何在一个py文件中获取另一个py文件中的值(一个或多个)

    python如何在一个py文件中获取另一个py文件中的值(一个或多个)

    这篇文章主要介绍了python如何在一个py文件中获取另一个py文件中的值(一个或多个),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Python海龟turtle基础知识大全以及画图集合实例

    Python海龟turtle基础知识大全以及画图集合实例

    turtle是一个简单的绘图工具,它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令,下面这篇文章主要给大家介绍了关于Python海龟turtle基础知识大全以及画图集合的相关资料,需要的朋友可以参考下
    2023-04-04
  • 对python:循环定义多个变量的实例详解

    对python:循环定义多个变量的实例详解

    今天小编就为大家分享一篇对python:循环定义多个变量的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 解读python正则表达式括号问题

    解读python正则表达式括号问题

    这篇文章主要介绍了python正则表达式括号问题解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • python中list列表的高级函数

    python中list列表的高级函数

    这篇文章主要为大家详细介绍了python中list列表的高级函数,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Python定时器实例代码

    Python定时器实例代码

    这篇文章主要介绍了Python定时器实例代码,向大家分享了两部分代码示例,一个是通过线程实现定时器timer,另一个是Python实现的精度可调的定时器实例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • python 中的列表解析和生成表达式

    python 中的列表解析和生成表达式

    优雅、清晰和务实都是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析( List comprehensions)和生成表达式,通过这两个操作,我们可以看到这三个观点是如何在python中和谐统一起来的。
    2011-03-03
  • 详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)

    详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)

    这篇文章主要介绍了Anconda环境下载python包的教程(图形界面+命令行+pycharm安装),这篇文章很适合小白入手级别的,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11

最新评论