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

Java编程思想之二十 并发

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

golang代码片段(摘抄)

并发编程中的几个名词概念

Python并发编程-线程