进程开启及其方法与属性

from multiprocessing import Process#调用multiprocessing中的Process模块
import time
import os
#
# def fn(i):
#     time.sleep(1.25)
#     print("这是子进程的pip%s,父进程的为pip%s"%(os.getpid(),os.getppid()))#获得pid,使用getpid()
#
# if __name__=="__main__":
#     for i in range(2):
#         p=Process(target=fn,args=(i,))#target是子进程要执行的任务,args传的是参数,以元祖的形式传值
#         p.start()#开启子进程,底层调用run函数
#     print("这是子进程的pip%s,父进程的pip为%s"%(os.getpid(),os.getppid()))
#并行,同一时间点同时执行;并发,一段时间间隔内先后执行
#同步,两个任务相互依赖,都成功则成功,需等待上个任务完成才能执行,比较可靠;异步,同时执行,两个任务在宏观上同一个时间执行
#阻塞与非阻塞取决于等待消息通知的状态.

# def fn(i):
#     time.sleep(2)
#     print(666)
#
# if __name__=="__main__":
#     p=Process(target=fn,args=(2,))
#     # p.daemon=True#父进程终结后,子进程也进行终结
#     p.name="zmc"
#     p.start()
#     # p.terminate()#杀死子进程
#     # time.sleep(0.2)
#     print(p.name,p.pid)
#     print(p.is_alive())#判断子进程是否运行
#     p.join(timeout=3)#将父进程与子进程的异步状态转换为同步状态,等待子进程完成后父进程再进行运行;里面timeout取值过小保持异步状态
#     print(777)#父进程等待子进程运行完再关闭


# def fn(i):
#     print(i**2)
#
#
# if __name__ == '__main__':
#     lst=[]
#     for i in range(2,6):
#         p=Process(target=fn,args=(i,))
#         p.start()
#         p.join()
#     #     lst.append(p)
#     # [p.join()for p in lst]
#     print(666)

#创建进程的另一种方式:
class my_Process(Process):
    def __init__(self):
        super(my_Process, self).__init__()
    def run(self):
        print("这是子进程")

if __name__ == '__main__':
    p=my_Process()
    start=time.time()
    p.run()
    print(time.time()-start)

 

posted @ 2018-08-20 21:40  python小Faker  阅读(130)  评论(0编辑  收藏  举报