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
    
    
    
  • 相关阅读:
    js 为表格增加行 动态
    百度测试新搜索结果页面 改进灵感来自谷歌?
    多线程程序中使用fork的问题
    C++ struct和class的区别
    J2SE 5 HotSpot JVM 解释
    并行优化、xvout
    C++基础:纯虚函数和抽象类
    C++的四种cast
    logcat过滤输出
    C++虚函数和纯虚函数(2)
  • 原文地址:https://www.cnblogs.com/aden668/p/11528002.html
Copyright © 2011-2022 走看看