python 64式: 第14式、多进程,队列与锁

本文深入探讨Python中多进程的实现,通过队列和锁来实现进程间的有效通信与同步。详细解析了如何使用Queue进行数据传递,并介绍了Lock在避免资源竞争中的关键作用。
摘要由CSDN通过智能技术生成
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import multiprocessing
import time

'''
关键:
1 multiprocessing.Process(group=None, target=None, args=(), kwargs={})
target:可调用的函数名,将会被run()调用
args: target被调用方法的元组参数
kwargs:字典参数列表
multiprocessing.start()
开启进程活动,需要被调用,开启子进程
multiprocessing.join([timeout])
阻塞当前进程,直到子进程执行完毕或超时
terminate(): 终止进程
multiprocessing.cpu_count():返回系统中CPU的个数

2 锁
多个进程访问共享资源,Lock可以避免访问冲突
multiprocessing.Lock():初始化
Lock.acquire():获取锁
Lock.release():释放锁
with lock: 获取锁和释放锁一起

3 多进程之间通信可用队列
multiprocessing.Queue.get([block[, timeout]])
block: True:表示阻塞,直到获取到一个元素


ref:
https://docs.python.org/2/library/queue.html#Queue
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868323401155ceb3db1e2044f80b974b469eb06cb43000
https://blog.csdn.net/dutsoft/article/details/54694798
https://docs.python.org/2/library/multiprocessing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值