前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【吴师傅的Python面包店】Day 3

【吴师傅的Python面包店】Day 3

原创
作者头像
leland
修改2021-10-08 20:13:38
2380
修改2021-10-08 20:13:38
举报
文章被收录于专栏:leland的专栏leland的专栏

前言:十一国庆只能待在家的吴师傅十分无聊,决定开一家Python面包店打发下时间。后面的每一天,吴师傅都会用一段代码简单实现卖面包的功能,并且解决前一天暴露的问题。

面包师傅也不等顾客来了再做面包了,自己一直把面包做完,顾客来了直接拿面包走。

代码语言:javascript
复制
"""python面包师傅在出售提前准备好面包的同时,还要同时准备新面包。"""

import time
import threading

TOTAL = 0
END_FLAG = False

def preproduce():
    """提前准备好的面包。"""
    global TOTAL
    TOTAL += 10

def producer():
    """生产面包。"""
    num = 0
    global TOTAL
    global END_FLAG
    while True:
        time.sleep(1)
        TOTAL += 1
        num += 1
        if num >= 10:
            # 师傅做了10个面包就要下班了。
            END_FLAG = True    # 关门了,顾客消费也要停止
            print('Close.')
            break

def consumer():
    """消费者,买到面包总要说点什么吧。"""
    global TOTAL
    global END_FLAG
    while not END_FLAG:
        if TOTAL > 0:
            print("I am so happy.")
            TOTAL -= 1
        else:
            time.sleep(2)
            print("I am waiting!")

def run():
    preproduce()
    p = threading.Thread(target=producer)
    c = threading.Thread(target=consumer)
    p.setDaemon(True)
    p.start()
    c.start()
    p.join()
    c.join()

if __name__ == "__main__":
    run()

面包师傅抱怨自己一个人干太累了,吴师傅决定再请两个师傅来帮忙。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com