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中条件判断语句的简单使用方法
Aug 21 Python
使用python 和 lint 删除项目无用资源的方法
Dec 20 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python批处理更改文件名os.rename的方法
Oct 26 Python
python 用下标截取字符串的实例
Dec 25 Python
python中open函数的基本用法示例
Sep 07 Python
python自动下载图片的方法示例
Mar 25 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
python实现取余操作的简单实例
Aug 16 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
python urllib和urllib3知识点总结
Feb 08 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 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
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
js控制table合并具体实现
2014/02/20 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python中super关键字用法实例分析
2015/05/28 Python
Python中super的用法实例
2015/05/28 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
大学生毕业自我鉴定范文
2013/09/19 职场文书
运动会广播稿150字
2014/02/19 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
国庆横幅标语
2014/10/08 职场文书
担保书范文
2015/01/20 职场文书
教师辞职信范文
2015/02/28 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript