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实现下载网易云音乐的高清MV
Mar 16 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python简单实现AES加密和解密
Mar 28 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
May 11 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 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 redis实现对200w用户的即时推送
2017/03/04 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
js select常用操作控制代码
2010/03/16 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
python 写一个水果忍者游戏
2021/01/13 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
旅游管理毕业生自荐书
2014/02/02 职场文书
求职信的正确写法
2014/07/10 职场文书
个人授权委托书
2014/09/15 职场文书
市场总监岗位职责
2015/02/11 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
pt-archiver 主键自增
2022/04/26 MySQL
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS