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中条件选择和循环语句使用方法介绍
Mar 13 Python
Python实现的数据结构与算法之队列详解
Apr 22 Python
python中reader的next用法
Jul 24 Python
Python中作用域的深入讲解
Dec 10 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
python3使用QQ邮箱发送邮件
May 20 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
查看keras的默认backend实现方式
Jun 19 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 关于访问控制的和运算符优先级介绍
2013/07/08 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
Python中装饰器的一个妙用
2015/02/08 Python
简析Python的闭包和装饰器
2016/02/26 Python
python的else子句使用指南
2016/02/27 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
python函数定义和调用过程详解
2020/02/09 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
自我鉴定范文
2013/11/10 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
写给父母的感谢信
2015/01/22 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP