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


Posted in Python onFebruary 22, 2019

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实现的选择排序算法示例
Nov 29 Python
详解Python中is和==的区别
Mar 21 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
Oct 30 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
Python趣味挑战之教你用pygame画进度条
May 31 Python
Python基础知识学习之类的继承
May 31 Python
Python实现多进程的四种方式
Feb 22 #Python
python在回调函数中获取返回值的方法
Feb 22 #Python
python实现批量注册网站用户的示例
Feb 22 #Python
Python多进程fork()函数详解
Feb 22 #Python
Django restframework 源码分析之认证详解
Feb 22 #Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 #Python
Python3爬虫之自动查询天气并实现语音播报
Feb 21 #Python
You might like
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
Javascript模块模式分析
2008/05/16 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
js使用递归解析xml
2014/12/12 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python面试题之列表声明实例分析
2019/07/08 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
业务主管岗位职责
2013/11/20 职场文书
单位提档介绍信
2014/01/17 职场文书
超市采购员岗位职责
2014/02/01 职场文书
仓库文员岗位职责
2014/04/06 职场文书
党员理论学习心得体会
2016/01/21 职场文书
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python