python queue join task_done的概念及实例解析
import threading
import queue
import time # 创建队列,用于存储数据
q = queue.Queue()
icnt = 0
def producer():
while True:
global icnt
icnt = icnt + 1
#print("producer icnt is:%d "%icnt)
data = "hello world"
print("producer is:",icnt)
q.put(data) # 生产者线程函数,向队列存入数据
#q.join()
data = "hello queue aaa "
print("producer is:aaa ",icnt)
q.put(data) # 生产者线程函数,向队列存入数据
q.join()
time.sleep(1) def consumer():
while True:
data = q.get() # 消费者线程,从队列取出数据
q.task_done()
print("consumer is:",data) # 创建并启动生产者、消费者线程
t1 = threading.Thread(target=producer)
t2 = threading.Thread(target=consumer)
t1.start()
t2.start() # 等待线程结束 t1.join()
t2.join()
运行结果:
producer is: 1
producer is:aaa 1
consumer is: hello world
consumer is: hello queue aaa
producer is: 2
producer is:aaa 2
consumer is: hello world
consumer is: hello queue aaa
源码二
import threading
import queue
import time # 创建队列,用于存储数据
q = queue.Queue()
icnt = 0
def producer():
while True:
global icnt
icnt = icnt + 1
#print("producer icnt is:%d "%icnt)
data = "hello world"
print("producer is:",icnt)
q.put(data) # 生产者线程函数,向队列存入数据
q.join()
data = "hello queue aaa "
print("producer is:aaa ",icnt)
q.put(data) # 生产者线程函数,向队列存入数据
q.join()
time.sleep(1) def consumer():
while True:
data = q.get() # 消费者线程,从队列取出数据
q.task_done()
print("consumer is:",data) # 创建并启动生产者、消费者线程
t1 = threading.Thread(target=producer)
t2 = threading.Thread(target=consumer)
t1.start()
t2.start() # 等待线程结束 t1.join()
t2.join()
运行结果:
producer is: 1
consumer is: hello world
producer is:aaa 1
consumer is: hello queue aaa
producer is: 2
consumer is: hello world
producer is:aaa 2
consumer is: hello queue aaa
python queue join task_done的概念及实例解析的更多相关文章
- Python Queue队列
queue is especially useful in threaded programming when information must be exchanged safely between ...
- Python Queue实现生产与消费
Python Queue模块详解 from:https://blog.linuxeye.com/334.html Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块 ...
- python --- queue模块使用
1. 什么是队列? 学过数据结构的人都知道,如果不知道队列,请Google(或百度). 2. 在python中什么是多生产者,多消费模型? 简单来说,就是一边生产(多个生产者),一边消费(多个消费者) ...
- Python -- queue队列模块
一 简单使用 --内置模块哦 import Queuemyqueue = Queue.Queue(maxsize = 10) Queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限. ...
- python Queue在两个地方
其一: Source code: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It ...
- python queue - 同步队列类
参考 官网 queue 模块 queue 模块实现多生产者,多消费者队列. 当必须在 ==多个线程之间安全地交换信息== 时,它在线程编程中特别有用. 此模块中的Queue类实现了所有必需的锁定语义. ...
- python Queue(队列学习)
Python 的Queue模块中提供了同步的.线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue.这些队列都实 ...
- 简单介绍一下python Queue中常用的方法
Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回True,反之False Queue.full() 如果队列满了,返回True,反之FalseQueue.fu ...
- Python Queue(队列)
Queue模块实现了多生产者.多消费者队列.当必须在多个线程之间安全地交换信息时,它在线程编程中特别有用,实现了所有必需的锁定语义. 一.该模块实现了三种类型的队列,它们的区别仅在于检索条目的顺序: ...
- Python中的exec、eval使用实例
Python中的exec.eval使用实例 这篇文章主要介绍了Python中的exec.eval使用实例,本文以简洁的方式总结了Python中的exec.eval作用,并给出实例,需要的朋友可以参考下 ...
随机推荐
- 从嘉手札<2023-12-09>
大雪时节 有种风雪欲来的静谧 如同飘摇的浮舟 人们常说上岸 可对于常年生活在水里的鱼儿来说 哪里是岸边呢 我不知道未来 但唯一可以确定的是 无论你过的怎么样 你都需要给自己一个交待 哪怕风雪兼程 哪怕 ...
- Excel中文本型数字转换为数值型数字的方法
背景 工作中经常遇到需要将Excel中的内容进行求和或者其他计算,但是由于格式为文本,无法进行计算和求和. 单元格的左上角都有绿色小三角,且用自动求和公式计算无法计算结果,显示为0,说明单元格格式为文 ...
- Swoole从入门到入土(19)——WebSocket服务器[文件传输]
要利用WebSocket进行文件传输,我们需要讨论两种情况,分别是:发送方可以是客户端,和 发送方是服务端. 1.发送方是客户端 1)服务端接收 $server->on('message', ...
- Go语言的100个错误使用场景(48-54)|错误管理
目录 前言 7. 错误管理 7.1 panicking(#48) 7.2 不清楚何时应该包裹一个 error(#49) 7.3 检查错误类型不够精确(#50) 7.4 检查错误值不够精确(#51) 7 ...
- 探秘SuperCLUE-Safety:为中文大模型打造的多轮对抗安全新框架
探秘SuperCLUE-Safety:为中文大模型打造的多轮对抗安全新框架 进入2023年以来,ChatGPT的成功带动了国内大模型的快速发展,从通用大模型.垂直领域大模型到Agent智能体等多领域的 ...
- SSIS数据同步系统
缘起: 若干年前,刚到一家3C类的电商公司做DBA,到公司没几天,公司的CEO和研发总监,说现在要做个事情: 把IDC的数据库的数据,要同步一份到仓库,因单量大,仓库经常爆仓,仓库网络不好时,可以直接 ...
- 解决putty连接报 connection refused
Ubuntu中换个速度快点的源后 执行 $sudo apt-get install openssh-server 安装ssh协议 执行ifconfig显示Ubuntu的ip地址 xp中用putty输入 ...
- 利用javax.validation实现对bean属性校验
1.使用场景介绍 controller层对传入的bean的属性进行非空.属性长度等合法性的校验. 传统的方式是我们要自己写if-else-去判断,比较麻烦. 2.实现效果 3.代码介绍 代码结构: p ...
- OCP试题解析之052-- DROP PROFILE app_user
133.You created a profile APP_USER and assigned it to the users. After a month, you decide to drop t ...
- SpringBoot整合Swagger2实现接口文档
展示一下 访问方式一 访问地址:http://localhost:8080/swagger-ui.html#/ 首页 详情页 访问方式二 访问地址:http://localhost:8080/doc. ...