线程替代方案-多进程

  • subprocess

    • 完全跳过线程,使用进程
    • 是派生进程的主要替代方案
    • python2.4后引入
  • multiprocessing

    • 使用threading借口派生,使用子进程
    • 允许为多核或者多cpu派生进程,接口跟threading非常相似
    • python2.6
  • concurrent.futures

    • 新的异步执行模块
    • 任务级别的操作
    • python3.2后引入

多进程

  • 进程间通讯(InterprocessCommunication, IPC )

  • 进程之间无任何共享状态

  • 进程的创建

    • 直接生成Process实例对象, 案例19
    • 派生子类, 案例20
  • 在os中查看pid,ppid以及他们的关系

    • 本身进程:os.getpid()
    • 父进程:os.getppid()
  • 生产者消费者模型

    • multiprocessing.JoinableQueue:有消息反馈的queue
    • 案例22
    • 队列中哨兵的使用, 案例23
    • 哨兵的改进, 案例24

案例地址