python 实现生产者 消费者案例

 

题目:python起2个进程一个为生产者、一个为消费者(消费者进程中起协程消费)

 

复制代码
from multiprocessing import Process, Queue
import time
import random
import gevent


# 消费者方法
def consumer(q):
    while True:
        time.sleep(2)
        gevent_data_list = []
        gevent_data_list.append(gevent.spawn(pop_data, q))
        gevent.joinall(gevent_data_list)


def pop_data(q):
    res = q.get()
    print("消费了%s " % (res))


# 生产者方法
def producer(q):
    # for i in range(10):
    while True:
        time.sleep(1)
        number = random.randint(1, 10)
        print("生产了 %s" % (number))
        q.put(number)


if __name__ == "__main__":
    # 创建队列
    q = Queue()

    # 创建生产者
    p1 = Process(target=producer, args=(q,))
    c1 = Process(target=consumer, args=(q,))
    p1.start()
    c1.start()
复制代码

 

posted on   星河赵  阅读(1142)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2018-11-27 debian ubuntu 下创建新用户useradd
2017-11-27 JS中怎样判断undefined
2017-11-27 Python统计列表中的重复项出现的次数的方法
2017-11-27 jquery 操作input radio 单选框

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示