博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Condition 实现消费者生产者
阅读量:6470 次
发布时间:2019-06-23

本文共 1157 字,大约阅读时间需要 3 分钟。

# -*- coding:utf-8 -*-""" Created by FizLin     https://github.com/Fiz1994"""# Consume one item# with cv:#     while not an_item_is_available():#         cv.wait()#     get_an_available_item()## # Produce one item# with cv:#     make_an_item_available()#     cv.notify()from threading import Thread, Conditionimport timequeue = []MAX_NUM = 10condition = Condition()def producer():    global queue    while True:        condition.acquire()        if len(queue) <= 0:            # 生产            queue.extend([i for i in range(10)])            print('生成数据,通知消费者 现在条数:', len(queue))            condition.notify()            condition.wait()        else:            print('生产者判断现在含有的数据: 大于0 不需要再生产', len(queue))            condition.notify()        condition.release()        time.sleep(1)def consumer():    global queue    while True:        condition.acquire()        if len(queue) <= 0:            print('消费者无法消费到数据,处于等待状态')            condition.wait()        else:            print('消费数据:', queue.pop(0))            time.sleep(1)            condition.notify()        condition.release()p = Thread(target=producer)c = Thread(target=consumer)p.start()c.start()

转载地址:http://owjko.baihongyu.com/

你可能感兴趣的文章
简单java在线测评程序
查看>>
录音和朗诵的实现
查看>>
Git服务端和客户端安装笔记
查看>>
Spring Security(14)——权限鉴定基础
查看>>
IntelliJ IDEA快捷键
查看>>
【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(下)
查看>>
MongoDB的基础使用
查看>>
进程间通信——命名管道
查看>>
LINUX 重定向的知识
查看>>
ssh登陆不需要密码
查看>>
ARP
查看>>
java mkdir()和mkdirs()区别
查看>>
桌面支持--excel自动换行
查看>>
虚拟化--003 vcac licence -成功案例
查看>>
windows server 2003各版本及2008各版本的最大识别内存大小
查看>>
OSChina 周六乱弹 ——揭秘后羿怎么死的
查看>>
centos查找未挂载磁盘格式化并挂载
查看>>
IT人员的职业生涯规划
查看>>
sorry,you must have a tty to run sudo
查看>>
ios开发中使用正则表达式识别处理字符串中的URL
查看>>