码迷,mamicode.com
首页 > 系统相关 > 详细

多进程

时间:2018-10-16 22:02:57      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:fun   start   rom   from   bsp   一个   for   创建   打印   

# join()
    # 阻塞等待子进程的结束

import time
from multiprocessing import Process

# =========运行完了和10个*是会先被打印的,20个*后面再打印
# def func(arg1, arg2):
#     print(‘*‘ * arg1)
#     time.sleep(5)
#     print(‘*‘ * arg2)
#
# if __name__ == ‘__main__‘:
#     p = Process(target=func, args=(10, 20))
#     p.start()
#     print(‘===========: 运行完了‘)


# 现在想让20个*打印完了,在执行父进程的===运行完了
# =========运行完了和10个*是会先被打印的,20个*后面再打印
def func(arg1, arg2):
    print(* * arg1)
    time.sleep(5)
    print(* * arg2)

if __name__ == __main__:
    p = Process(target=func, args=(10, 20))
    p.start()   # 启动子进程
    print(hahaha)
    p.join()    # 阻塞等待子进程的结束
    print(===========: 运行完了)

 

  2.开启多个进程的方法

# 同时开启多个子进程

import time
import os
from multiprocessing import Process

# 开启多进程的一种方法
# def func(arg1, arg2):
#     print(os.getpid(), ‘*‘ * arg1)
#     time.sleep(5)
#     print(os.getpid(), ‘*‘ * arg2)
#
# if __name__ == ‘__main__‘:
#     p1 = Process(target=func, args=(5, 10))
#     p2 = Process(target=func, args=(4, 6))
#
#     p1.start()
#     p2.start()
#
#     # for i in range(10):
#     #     p = Process(target=func, args=(2 * i, 5 *i))
#     #     p.start()
#
#     print(‘haha‘)
#
#     p1.join()
#     p2.join()
#
#     print(‘父进程执行完了‘)
# --------------------------------------------------------

# # 开启多进程的方法也可以用for,但无法使得子进程全部结束后再打印父进程执行完了
# def func(arg1, arg2):
#     print(os.getpid(), ‘*‘ * arg1)
#     time.sleep(5)
#     print(os.getpid(), ‘*‘ * arg2)
#
# if __name__ == ‘__main__‘:
#     for i in range(10):
#         p = Process(target=func, args=(2 * i, 5 *i))
#         p.start()
#
#     print(‘父进程执行完了‘)

# 开启多进程的方法也可以用for,此种方法可使得子进程全部结束后再打印父进程执行完了
def func(arg1, arg2):
    print(os.getpid(), * * arg1)
    time.sleep(5)
    print(os.getpid(), * * arg2)

if __name__ == __main__:
    p_lst = []  # 创建了一个list
    for i in range(10):
        p = Process(target=func, args=(2 * i, 5 *i))
        p_lst.append(p) # 将创建的每个子进程对象加入到list列表中
        p.start()
    [p.join() for p in p_lst]   # 遍历列表中的每个子进程对象,都调用join()阻塞等待子进程的结束

    print(父进程执行完了)

 

多进程

标签:fun   start   rom   from   bsp   一个   for   创建   打印   

原文地址:https://www.cnblogs.com/whylinux/p/9800584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!