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中类的定义、继承及使用对象实例详解
Apr 30 Python
十条建议帮你提高Python编程效率
Feb 16 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
pyQt5实时刷新界面的示例
Jun 25 Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
python执行js代码的方法
May 13 Python
Python实现老照片修复之上色小技巧
Oct 16 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
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
php封装的验证码类分享
2017/02/26 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
推荐:极酷右键菜单
2006/11/29 Javascript
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python中字典映射类型的学习教程
2015/08/20 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
解决python replace函数替换无效问题
2020/01/18 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
综合素质的自我鉴定
2013/10/07 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
党建工作汇报材料
2014/12/24 职场文书
总经理致辞
2015/07/29 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书