• python生产者消费者模型


    业界用的比较广泛,多线程之间进行同步数据的方法,解决线程之间堵塞,互相不影响。

    server --> 生产者

    client --> 消费者

    在一个程序中实现又有生产者又有消费者

    ,生产者不断生产,消费者不断消费,达到并行数据安全完整交互的目的。

    所以会有消息队列的关键字产生,队列是典型的生产者消费者模型

    例如:吃包子例子,生产慢,消费快

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-

    import threading, time
    import Queue
    import random
    q = Queue.Queue() #模拟生产带,如果有瓶颈可以增加q(生产带)来提高效率

    def Producer(name):
      for i in range(20):
        q.put(i) #往生产带放东西,是随机放置的
        print '33[32;1mProducer %s has made %s baozi ...33[0m'% (name,i)
        time.sleep(random.randrange(2)) #假设放置的速度是1s随机放置一次

    def Consumer(name): #模拟消费者
      count = 0
      while count < 20:
        data = q.get() #消费者从生产带拿东西
        print '33[31;1mConsumer %s has eaten %s baozi ...33[0m' %(name,data)
        count +=1
        time.sleep(random.randrange(4)) #消费者要比生产者快,所以时间上假设是1-2s随机消费一次

    p = threading.Thread(target=Producer,args=('Joson',))
    c = threading.Thread(target=Consumer,args=('Li',))
    p.start()
    c.start()

  • 相关阅读:
    DENIED Redis is running in protected mode
    Redis接口的调用
    Redis复制
    Redis安全
    Redis持久化
    Redis简单示例
    【T11】提防对等实体的不友好动作
    【T10】记住,TCP__IP不是轮询的
    Python中的with语句
    postgreSQL中timestamp转成date格式
  • 原文地址:https://www.cnblogs.com/i1991/p/6272564.html
Copyright © 2020-2023  润新知