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的轻便web框架Bottle
Apr 08 Python
python简单的函数定义和用法实例
May 07 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
python检测IP地址变化并触发事件
Dec 26 Python
python日志logging模块使用方法分析
May 23 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
zf框架的校验器InArray使用示例
2014/03/13 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
PHP goto语句用法实例
2019/08/06 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
初学python数组的处理代码
2011/01/04 Python
python抓取网页内容示例分享
2014/02/24 Python
Python实现简单状态框架的方法
2015/03/19 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
python常用运维脚本实例小结
2020/02/14 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
益模软件Java笔试题
2012/03/27 面试题
教育学专业毕业生的自我评价
2013/11/21 职场文书
英语导游词
2015/02/13 职场文书
污水处理保证书
2015/05/09 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
公历12个月名称的由来
2022/04/12 杂记