• 消息队列Queue


    队列:
      先进先出
    通信原理:
      在内存中建立队列数据结构模型。多个进程都可以通过队列存入内容,取出内容的顺序和存入顺序保持一致

    函数方法:

    q = Queue(maxsize = 0)
      功能 : 创建队列对象
      参数 : maxsize : 默认表示系统自动分配队列空间
        如果传入正整数则表示最多存放多少条消息
      返回值 : 队列对象

    q.put(data,[block,timeout])
      功能:向队列中存入消息
      参数:data 存入的消息 (支持python数据类型)
        block 默认True 表示当队列满时阻塞
        设置为False 则为非阻塞
        timeout 超时时间

    data = q.get([block,timeout])
      功能: 获取队列消息
      参数:block 默认为True 表示队列空时阻塞
        设置为False则表示非阻塞
        timeout 超时时间
      返回值 : 返回获取到的消息

    q.full() 判断队列是否为满
    q.empty() 判断队列是否为空
    q.qsize() 获取队列中消息数量
    q.close() 关闭队列

    from multiprocessing import Process,Queue
    import time
    
    #创建消息队列
    q = Queue()
    
    def fun1():
        time.sleep(1)
        q.put({"a":1,"b":2})
    
    def fun2():
        time.sleep(2)
        print("收到消息", q.get())
    
    p1 = Process(target = fun1)
    p2 = Process(target = fun2)
    p1.start()
    p2.start()
    p1.join()
    p2.join()
  • 相关阅读:
    练习2
    练习1
    如何生成添加前缀的顺序DIV
    mysql5.7 版本中 timestamp 不能为零日期 以及sql_mode合理设置
    MIME类型大全
    Intel Xeon E5-2620 v4参数
    webgl开发中添加IIS的mime类型
    jquery.validate动态更改校验规则
    mvc4
    asp.net防SQL/JS注入攻击:过滤标记
  • 原文地址:https://www.cnblogs.com/zengsf/p/9637920.html
Copyright © 2020-2023  润新知