Python学习----多线程处理工作队列
来源:互联网 发布:淘宝店铺扫店软件 编辑:程序博客网 时间:2024/05/21 17:40
目标
开始学习Python,练手
建立一个任务队列,添加一堆任务,然后开启多个线程去处理队列里的任务
代码
#创建工作队列for i in range(100000): MyWorkThread.workQueue.put(work)
#启动多线程,处理工作队列里的内容threads = []for i in range(THREAD_NUM): thread = MyWorkThread.MyWorkThread() thread.start() threads.append(thread)#等待队列清空while not MyWorkThread.workQueue.empty(): time.sleep(2) pass#MyWorkThread.workQueue.join()#通知线程是时候退出MyWorkThread.exitAllThread()print('触发退出所有工作线程')#等待所有线程完成退出for t in threads: t.join()
#!/usr/bin/python#coding=utf-8import threadingimport timeimport tracebackimport osimport Queueclass MyWorkThread(threading.Thread): def __init__(self,): threading.Thread.__init__(self) def run(self): global workQueue global exitFlag globalLock.acquire() loop = exitFlag globalLock.release() while not loop: try: #任务并运行 work = workQueue.get(False) work.run() del work except Queue.Empty: time.sleep(0.5) except Exception as e: print('ERROR:',e) print('traceback.format_exc():\n%s' % traceback.format_exc()) time.sleep(0.5) os._exit(0) globalLock.acquire() loop = exitFlag globalLock.release() print('线程{}结束'.format(self.tid))def exitAllThread(): global exitFlag globalLock.acquire() exitFlag=1 globalLock.release()workQueue = Queue.Queue() #工作队列globalLock = threading.Lock() #全局变量锁exitFlag = 0 #线程结束
阅读全文
0 0
- Python学习----多线程处理工作队列
- python模块学习---多线程处理
- 多线程消息处理队列
- Python模块学习 ---- thread 多线程处理
- Python模块学习 ---- thread 多线程处理
- Python模块学习 ---- thread 多线程处理
- Python模块学习: thread 多线程处理
- Python+多线程+队列爬虫
- 多线程学习-队列
- NIO 多线程处理异步队列
- python多线程+队列下载资源
- Python:多线程、消息队列编程
- 使用多线程处理耗时工作
- 一个C#多线程的工作队列
- java 多线程 线程池 工作队列
- 一个C#多线程的工作队列
- 一个C#多线程的工作队列
- python多线程处理数据
- 《Android进阶之光》Horizontal 读书笔记
- 5个超实用的excel操作技巧,据说掌握最后一项技能的人只有3%!
- html学习整理
- 文章标题
- 龟兔赛跑之Java多线程通讯初识
- Python学习----多线程处理工作队列
- x
- io流
- 响应式设计微网站静态模板,适合游戏、新闻资讯等平台
- 报错 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the paren
- python 类和实例
- 一个数位dp,据说是腾讯面试题。。。
- mysql配置与可视化配置
- jenkins+ansible+maven自动部署