python并发编程-几个方法
Posted konglinqingfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python并发编程-几个方法相关的知识,希望对你有一定的参考价值。
join()方法
from multiprocessing import Process
import time
def func(arg1,arg2):
print('*'*arg1)
time.sleep(5)
print('*'*arg2)
if __name__ == '__main__': #windos必须声明
p = Process(target=func, args=(10,20))
p.start()
print('hahaha')
#需求,要求子进程结束后立即执行主进程
p.join()#join()方法用于感知一个子进程的结束,类似将异步的程序改为同步
print('========:运行完了')
>>>>
hahaha
**********
********************
========:运行完了
控制多个子进程, 保证所有子进程结束才执行下面的逻辑
from multiprocessing import Process
import time
def func(arg1,arg2):
print('*'*arg1)
time.sleep(5)
print('*'*arg2)
if __name__ == '__main__': #windos必须声明
p_lst = []
for i in range(10):
p = Process(target=func, args=(10*i,20*i))
p_lst.append(p)
p.start() #子进程还是异步执行
[p.join() for p in p_lst]#join()每个子进程,保证所有的子进程都结束了才执行下面这句
print('运行完了')
异步写入多个文件
import os
from multiprocessing import Process
def func(filename, content):
with open(filename,'w') as f:
f.write(content*10*'*')
if __name__ == '__main__':
p_lst = []
for i in range(5):
p = Process(target=func, args=('info%s'%i,i))
p_lst.append(p)
p.start()
[p.join() for p in p_lst]
print([i for i in os.walk(r'C:Demo')])
以上是关于python并发编程-几个方法的主要内容,如果未能解决你的问题,请参考以下文章
python并发编程-进程理论-进程方法-守护进程-互斥锁-01
JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段