zoukankan      html  css  js  c++  java
  • 进程(二)

    import os
    import time
    from multiprocessing import Process
    def func(args,args2):
    print(args,args2)
    time.sleep(3)
    print('子进程 :', os.getpid())
    print('子进程的父进程 :', os.getppid())
    print(12345)

    if __name__ == '__main__':
    p = Process(target=func,args=('参数','参数2')) # 注册,一个参数时,应该加逗号,比如(‘参数1’,)
    # p是一个进程对象,还没有启动进程
    p.start() # 开启了一个子进程
    print('*'*10)
    print('父进程 :',os.getpid()) # 查看当前进程的进程号
    print('父进程的父进程 :',os.getppid()) # 查看当前进程的父进程




    # 进程的生命周期
    # 主进程
    # 子进程
    # 开启了子进程的主进程 :
    # 主进程自己的代码如果长,等待自己的代码执行结束,
    # 子进程的执行时间长,主进程会在主进程代码执行完毕之后等待子进程执行完毕之后 主进程才结束

    多进程中的几个方法 

    # join()
    
    import time
    from multiprocessing import Process

    def func(arg1,arg2):
    print('*'*arg1)
    time.sleep(5)
    print('*'*arg2)

    if __name__ == '__main__':
    p = Process(target=func,args=(10,20))
    p.start()
    print('hahahaha')与fun方法执行是异步的
    p.join() # 是感知一个子进程的结束,将异步的程序改为同步
    print('====== : 运行完了')与fun同步

        #  开启多个子进程

    import os
    import time
    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(10):
    p = Process(target=func,args=('info%s'%i,0))
    p_lst.append(p)
    p.start()
    for p in p_lst:p.join() # 之前的所有进程必须在这里都执行完才能执行下面的代码
    # [p.join() for p in p_lst]
    print([i for i in os.walk(r'E:python10day37')])

    # 同步 0.1 * 500 = 50
    # 异步 500 0.1 = 0.1
    # 多进程写文件
    # 首先往文件夹中写文件
    # 向用户展示写入文件之后文件夹中所有的文件名

         # 开启多进程的第二种方式

    import os
    from multiprocessing import Process

    class MyProcess(Process):
    def __init__(self,arg1,arg2):
    super().__init__()因为父类里有_init_方法,需导入实现_init_方法,不然报错
    self.arg1 = arg1
    self.arg2 = arg2

    def run(self):重写run方法,必须是run
    print(self.pid)
    print(self.name)
    print(self.arg1)
    print(self.arg2)

    if __name__ == '__main__':
    p1 = MyProcess(1,2)
    p1.start()
    p2 = MyProcess(3,4)
    p2.start()

    # 自定义类 继承Process类
    # 必须实现一个run方法,run方法中是在子进程中执行的代码
  • 相关阅读:
    angular反向代理配置
    实现对Asp.NetMvc及Asp.NetCore的权限控制
    C# 语言特性发展史
    在angular 6中使用 less
    使用WeihanLi.Redis操作Redis
    [svc]jq神器使用
    [sh]shell脚本栗子
    [k8s]nginx-ingress配置4/7层测试
    [svc]nginx-module-vts第三方模块安装配置
    [k8s]helm原理&私有库搭建&monocularui和kubeapp探究
  • 原文地址:https://www.cnblogs.com/mys6/p/10822178.html
Copyright © 2011-2022 走看看