修修心养养性

利不可赚尽,福不可享尽,势不可用尽

大纲

  1. join方法使用
  2. 进程锁
  3. 进程间通信

Process对象中的join方法

join方法表示等待子进程结束后再继续往下运行,通常用于进程间的同步,等待的总时间是子进程中耗费时间最长的那个进程运行的时间。




python 创建多进程 python多进程join_Python

join方法演示




python 创建多进程 python多进程join_获取进程运行时间_02

对比一下两种不同结果



进程锁

并发运行时会出现同时操作一个文件时候,这时候会出现操作文件内容混乱,需要加入锁机制,由并发变成了串行。

import timeimport osfrom multiprocessing import Process, Lockdef work(lock):    # 获取锁    lock.acquire()    print('{0} is 开始工作'.format(os.getpid()))    time.sleep(2)    print('{0} is 结束工作'.format(os.getpid()))    # 释放锁    lock.release()lock = Lock()for i in range(3):    p = Process(target=work,args=(lock,))    p.start()




python 创建多进程 python多进程join_python 创建多进程_03

加入锁机制变成串行时运行结果



进程间通信

在父进程中创建两个子进程,一个往Queue里写数据,一个从Queue里读数据




python 创建多进程 python多进程join_进程间通信_04

Queue示例




python 创建多进程 python多进程join_子进程_05

结果



如果本篇对您有帮助,请点赞转发支持一下,谢谢。

上一篇:Python中多进程(一)

下一篇:Python中多线程(一)