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()

  • 相关阅读:
    python字典实现原理-哈希函数-解决哈希冲突方法
    ElasticSearch-倒排索引
    ElasticSearch-核心概念
    MarkdownPad2基础语法
    下载python3.6,进行编译安装,运行django程序
    linux-指令1
    注解和反射
    Htlm和Css
    JAVASE加强
    网络编程
  • 原文地址:https://www.cnblogs.com/i1991/p/6272564.html
Copyright © 2011-2022 走看看