zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    Atcoder Regular Contest 092 A 的改编
    AtCoder Regular Contest 092 B Two Sequences
    hihoCoder #1695 公平分队II
    redis基础知识
    mongodb进阶
    mongodb基础知识
    memcached基础知识
    利用多进程获取猫眼电影top100
    分析AJAX抓取今日头条的街拍美图并把信息存入mongodb中
    selenium的使用技巧及集成到scrapy
  • 原文地址:https://www.cnblogs.com/i1991/p/6272564.html
Copyright © 2011-2022 走看看