zoukankan      html  css  js  c++  java
  • 队列

    ipc机制 进程通讯

    管道: pipe 基于共享的内存空间

    队列: pipe+锁 queue

    ###案例一
    from multiprocessing import Process,Queue
    q = Queue()
    q.put('aaa')
    q.put([1,2,4])
    q.put(2)
    print(q.get())
    print(q.get())
    print(q.get())
    # q.put(5)
    # q.put(5)
    print(q.get()) # 默认就会一直等着拿值
    
    
    ###案例二
    from multiprocessing import Process,Queue
    q = Queue(4)
    q.put('aaa')
    q.put([1,2,4])
    q.put([1,2,4])
    q.put(2)
    
    q.put('乔碧萝')  #队列满了的情况再放值,会阻塞
    
    
    ###案例三
    from multiprocessing import Process,Queue
    q = Queue(3)
    q.put('zhao',block=True,timeout=2) #
    q.put('zhao',block=True,timeout=2) #
    q.put('zhao',block=True,timeout=2) #
    
    q.put('zhao',block=True,timeout=5) # put里的  block=True 如果满了会等待,timeout最多等待n s,如果ns还是队列还是满的就报错了
    
    
    ###案例四
    from multiprocessing import Process,Queue
    q = Queue()
    q.put('yyyy')
    q.get()
    q.get(block=True,timeout=5) # block=True 阻塞等待,timeout最多等5s, 剩下同上
    
    
    ###案例五
    from multiprocessing import Process,Queue
    q = Queue(3)
    q.put('qwe')
    q.put('qwe')
    q.put('qwe')
    
    q.put('qwe',block=False) # 对于put来说block=False 如果队列满了就直接报错
    
    q = Queue(3)
    q.put('qwe')
    q.get()
    
    
    q.get(block=False)
    #block = Flase 拿不到不阻塞,直接报错
    
    ###案例六
    from multiprocessing import Process,Queue
    q = Queue(1)
    q.put('123')
    # q.get()
    q.put_nowait('666') # block = False
    # q.get_nowait() # block = False
    
    
    
  • 相关阅读:
    常用工具
    H5页面验收流程及性能验收标准
    埋点数据测试
    提高效率的必备工具
    移动APP安全测试
    Response响应相关
    AES加密解密
    Requests模块
    爬虫入门
    【CMDB】API传输验证
  • 原文地址:https://www.cnblogs.com/aden668/p/11528002.html
Copyright © 2011-2022 走看看