Python中多进程—Join方法使用、进程锁及进程间通信

开发 后端
本篇给大家介绍Python中多进程,Join方法使用、进程锁及进程间通信。

[[352802]]

 大纲

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

Process对象中的join方法

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

join方法演示


对比一下两种不同结果

进程锁

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

  1. import time 
  2. import os 
  3. from multiprocessing import Process, Lock 
  4.  
  5. def work(lock): 
  6.     # 获取锁 
  7.     lock.acquire() 
  8.     print('{0} is 开始工作'.format(os.getpid())) 
  9.     time.sleep(2) 
  10.     print('{0} is 结束工作'.format(os.getpid())) 
  11.     # 释放锁 
  12.     lock.release() 
  13.  
  14. lock = Lock() 
  15. for i in range(3): 
  16.     p = Process(target=work,args=(lock,)) 
  17.     p.start() 

 

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

进程间通信

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


Queue示例

 

责任编辑:姜华 来源: 今日头条
相关推荐

2017-08-06 00:05:18

进程通信开发

2018-01-12 14:35:00

Linux进程共享内存

2013-03-28 13:14:45

AIDL进程间通信Android使用AI

2017-06-19 13:36:12

Linux进程消息队列

2010-01-05 10:00:48

Linux进程间通信

2017-06-30 10:12:46

Python多进程

2019-11-08 14:47:49

TCPIP网络

2020-11-04 07:17:42

Nodejs通信进程

2011-06-22 17:09:50

QT 进程 通信

2024-03-29 06:44:55

Python多进程模块工具

2024-01-03 10:17:51

Linux通信

2019-05-08 11:10:05

Linux进程语言

2011-06-24 14:01:34

Qt QCOP 协议

2018-05-30 13:58:02

Linux进程通信

2021-02-25 11:19:37

谷歌Android开发者

2019-05-13 10:00:41

Linux进程间通信命令

2022-03-09 17:01:32

Python多线程多进程

2010-07-15 12:51:17

Perl多进程

2023-05-10 07:53:08

.Net开发多进程通信方式

2021-09-10 21:25:43

Redis分布式
点赞
收藏

51CTO技术栈公众号