Process of join usage

Process of join usage

The end of the primary process and so on, wait for the child: join

from multiprocessing import Process
import time
def foo():
    print('进程  start ')
    time.sleep(2.3)
    print('进程  end ')



if __name__ == '__main__':
    p = Process(target=foo)
    p.start() #
    # 核心需求就是
    # time.sleep(5)
    p.join() # 阻塞住主进程再等待子进程结束,然后再往下执行,(了解的是:内部会待用wait())
    print('主')
from multiprocessing import Process
import time
def foo(x):
    print('进程  start ')
    time.sleep(x)
    print('进程  end ')



if __name__ == '__main__':
    p1 = Process(target=foo,args=(1,))
    p2 = Process(target=foo,args=(2,))
    p3 = Process(target=foo,args=(3,))
    start = time.time()
    p1.start() #
    p2.start() #
    p3.start() #
    # 核心需求就是
    # time.sleep(5)
    p3.join() #1s
    p1.join() #1s
    p2.join() #1s
    # 总时长:按照最长的时间计算多一点。
    end = time.time()
    print(end-start) #3s多 or 6s多  ?  正解:3s多
    print('主')
from multiprocessing import Process
import time
def foo(x):
    print(f'进程{x}  start ')
    time.sleep(x)
    print(f'进程{x}  end ')



if __name__ == '__main__':
    p1 = Process(target=foo,args=(1,))
    p2 = Process(target=foo,args=(2,))
    p3 = Process(target=foo,args=(3,))
    start = time.time()
    p1.start() #
    p1.join() #
    p2.start() #
    p2.join() #
    p3.start() #
    p3.join() #   7s多
    # 不如不开,直接穿行调用函数反而快
    # foo(1)
    # foo(2)
    # foo(3)   6s多
    # 核心需求就是
    # time.sleep(5)
    # p3.join() #1s
    # p1.join() #1s
    # p2.join() #1s   3s多
    # 总时长:按照最长的时间计算多一点。
    end = time.time()
    print(end-start) 
    print('主')
#代码优化
from multiprocessing import Process
import time
def foo(x):
    print(f'进程{x}  start ')
    time.sleep(x)
    print(f'进程{x}  end ')



if __name__ == '__main__':
    start = time.time()
    p_list = []
    for i in range(1,4):
        p = Process(target=foo,args=(i,))
        p.start()
        p_list.append(p)
    print(p_list)
    for p in p_list:
        p.join()
    end = time.time()
    print(end-start) #3s多 or 6s多  ?  正解:3s多
    print('主')

Guess you like

Origin www.cnblogs.com/aden668/p/11512648.html