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读写Redis数据库操作示例
Mar 18 Python
跟老齐学Python之不要红头文件(2)
Sep 28 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
python GUI实现小球满屏乱跑效果
May 09 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
Django中自定义查询对象的具体使用
Oct 13 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python 如何将office文件转换为PDF
Sep 22 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 Python
Python 中 Shutil 模块详情
Nov 11 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来写记数器(详细介绍)
2006/10/09 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python中的pack和unpack的使用
2018/03/12 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
python分数表示方式和写法
2019/06/26 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
走进敬老院活动总结
2014/07/10 职场文书
邀请函样本
2015/02/02 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
导游词之珠海轮廓
2019/10/25 职场文书