Python学习笔记——进阶篇【第九周】———线程、进程、协程篇(队列Queue和生产者消费者模型)
2024-10-09 17:14:09
Python之路,进程、线程、协程篇
本节内容
- 进程、与线程区别
- cpu运行原理
- python GIL全局解释器锁
- 线程
- 语法
- join
- 线程锁之Lock\Rlock\信号量
- 将线程变为守护进程
- Event事件
- queue队列
- 生产者消费者模型
- Queue队列
- 开发一个线程池
- 进程
- 语法
- 进程间通讯
- 进程池
参考链接http://www.cnblogs.com/alex3714/articles/5230609.html
生产者消费者模型
实例演示
#生产者消费者模型 import threading,queue
import time def consumer(n): #消费者
while True:
print("\033[32;1mconsumer[%s]\033[0m get task: %s"%(n,q.get()))
time.sleep(1)
q.task_done()#通知队列 def producer(n):#生产者
count=1#计数器
while True:
# for i in range(2):
# time.sleep(1)
#if q.qsize()<3:#小于3个包子,为了检测判断不要生产的太多
print("prodcer [%s] produced a new task:%s"%(n,count))
q.put(count)
count +=1#计数器
q.join()#queue is empty,阻塞,等待队列通知(没有包子时会通知)
print("all task has been cosumed by consumers...") q=queue.Queue() c1=threading.Thread(target=consumer,args=[1,])
c2=threading.Thread(target=consumer,args=[2,])
c3=threading.Thread(target=consumer,args=[3,])
p=threading.Thread(target=producer,args=["XiaoYu",])
p2=threading.Thread(target=producer,args=["Jack",])
# p3=threading.Thread(target=producer,args=["Bob",])
# p4=threading.Thread(target=producer,args=["Z1",])
# p5=threading.Thread(target=producer,args=["Z2",])
c1.start()
c2.start()
c3.start()
p.start()
p2.start()
# p3.start()
# p4.start()
# p5.start()
最新文章
- iOS---------- @synchronized(self)的用法
- 序列不包含任何元素,c#,支付宝
- 【Python自动化运维之路Day4】
- Unicode基本概念
- Leetcode#139	Word Break
- java PriorityBlockingQueue 基于优先级队列,的读出操作可以阻止.
- DLNA_百度百科
- Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)
- github 教程
- SSH自动断开连接的原因、配置(转)
- SpringMVC Restful api接口实现
- 关于java的Synchronized,你可能需要知道这些(上)
- jquery制作移动端菜单栏左右滑动
- NSURLSession 相关清单
- 01-spark基础
- linux命令之复制
- /dev/mem直接操作硬件寄存器
- Linux 安装php扩展 swoole
- Linux Centos7安装chrome浏览器
- CentOS Linux 7.3 1611 (Core) 配置静态IP地址
热门文章
- C/C++基础知识总结——数组、指针域、字符串
- [转]Decrypt Any iOS Firmware on Mac, Windows, Linux
- algorithm(算法)
- UISearchDisplayController UISearchBar
- iOS蓝牙调用的一般流程
- Linq4j简明介绍
- JIT动态编译器的原理与实现之Interpreter3
- poj 3181 Dollar Dayz(求组成方案的背包+大数)
- 通用高性能 Windows Socket 组件 HP-Socket v2.2.2 更新发布
- Facebook开源的基于SQL的操作系统检测和监控框架:osquery Table详解