美文网首页
8.进程间通信与进程池

8.进程间通信与进程池

作者: 这是李金辉呀 | 来源:发表于2019-01-18 11:54 被阅读0次

进程间通信与进程池

进程间通信-Queue

通常利用multiprocessing模块的Queue实现多线程之间的数据传递,Queue本身是一个消息列队程序

  1. q=Queue()#若括号中没有指定最大可接受的消息数量或数量为负值,那么代表可接受的消息数量没有上限直到内存耗尽
  2. Queue.qsize():返回当前队列包含的消息数量
  3. Queue.empty():队列为空返回True
  4. Queue.full():队列为满返回True
  5. Queue.get([block[,timeout]]):获取队列中的一条消息,然后将其从队列中移除,block默认值为True
    1. 若block使用默认值,且没有设置timeout(单位秒),消息队列如果为空,此时程序将被阻塞(停在读取状态),直到从消息队列读到消息为止,如果设置了timeout,则会等待timeout秒。若还没有读到任何消息,抛出Queue.Empty异常
    2. 若block值为False,消息队列如果为空,则会理科抛出“Queue.Empty”异常
      1. Queue.get_nowait():相当Queue.get(False);
      2. Queue.put(item,[block[, timeout]]):将item消息写入队列,block默认值为True;

实例

from multiprocessing import Process,Queue
import os,time,random
def write(q):
    for value in ['A','B','C']:
        print('Put %s to queue ... '%value)
        q.put(value)
        time.sleep(random.random())
def read(q):
    while True:
        if not q.empty():
            value = q.get(True)
            print('Get %s from queue.' %value)
            time.sleep(random.random())
        else:
            break
if __name__=='__main__':
    q = Queue()
    pw = Process(target=write,args=(q,))
    pr = Process(target=read,args=(q,))
    pw.start()
    pw.join()
    pr.join()
    pr.join()
    print('')
    print('所有数据都写入并且已经读完')

进程池

相关文章

  • 8.进程间通信与进程池

    进程间通信与进程池 进程间通信-Queue 通常利用multiprocessing模块的Queue实现多线程之间的...

  • linux进程间通信(1)

    一、进程通信概述 1、什么是进程间通信?什么是线程间通信? 进程间通信: 进程间通信就指的是用户空间中进程A与进程...

  • python高级 6 进程

    进程、进程的使用、进程注意点、进程间通信-Queue、进程池Pool、进程与线程对比、文件夹拷贝器-多任务 1.进...

  • 第二十三章 进程间通信介绍(一)

    本章目标: 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对...

  • Python多进程

    目录:一、进程的状态二、进程的创建三、进程间通信四、进程池 Python并发之多进程 一、进程的状态 工作中,任务...

  • Electron

    node GUI Electron 进程间通信IPC 主进程与渲染进程 渲染进程与渲染进程 shell dialo...

  • 进程管理(一)进程操作

    进程创建 、进程执行映像和加载、进程运行(进程调度)、进程间的互斥与同步、进程间通信、进程终止 1、进程创建 PC...

  • IPC基础

    1.IPC Inter-Process Communication,即进程间通信或者跨进程通信。 2.进程与线程 ...

  • Python 多任务 - 02 进程

    目录一、进程概念二、使用Process完成多线程三、进程、线程的区别四、通过队列完成进程间通信五、进程池概念以及创...

  • 进程间通信

    进程间通信 进程空间相对独立,资源无法相互获取,此时在不同进程间通信需要专门方法 进程间通信就是在不同的进程间进行...

网友评论

      本文标题:8.进程间通信与进程池

      本文链接:https://www.haomeiwen.com/subject/rrxndqtx.html