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修改操作系统时间的方法
May 18 Python
python模拟Django框架实例
May 17 Python
Python实现备份MySQL数据库的方法示例
Jan 11 Python
Django中Forms的使用代码解析
Feb 10 Python
对pandas replace函数的使用方法小结
May 18 Python
面向初学者的Python编辑器Mu
Oct 08 Python
Python实现自定义读写分离代码实例
Nov 16 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
使用Django搭建网站实现商品分页功能
May 22 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
python快速安装OpenCV的步骤记录
Feb 22 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自动获取目录下的模板的代码
2010/08/08 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
js右键菜单效果代码
2007/07/21 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
python写入xml文件的方法
2015/05/08 Python
Python抓取百度查询结果的方法
2015/07/08 Python
Python脚本处理空格的方法
2016/08/08 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
新手学python应该下哪个版本
2020/06/11 Python
估算杭州有多少软件工程师
2015/08/11 面试题
销售人员自我评价
2014/02/01 职场文书
建房协议书
2014/04/11 职场文书
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers