zoukankan      html  css  js  c++  java
  • 创建进程(函数)

    模块
    process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。
    multiprocess (是python中一个操作、管理进程的包,包含了和进程有关的所有子模块,分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享)
    模块参数
    1 group参数未使用,值始终为None
    2 target表示调用对象,即子进程要执行的任务
    3 args表示调用对象的位置参数元组,args=(1,2,'egon',)
    4 kwargs表示调用对象的字典,kwargs={'name':'egon','age':18}
    5 name为子进程的名称
    方法
    1 p.start():启动进程,并调用该子进程中的p.run()
    2 p.run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类(class)的类中一定要实现该方法
    3 p.terminate():强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果p还保存了一个锁那么也将不会被释放,进而导致死锁
    4 p.is_alive():如果p仍然运行,返回True
    创建进程(函数)
    from multiprocessing import Process
    p = Process(target=函数名字)
    p.start () 开启进程
    os
    os.getpid()进程号
    os.getppid()父进程
    if __name__ == '__main__':开启理由
    win:子进程要import 父进程所在模块
    如果不写就会无限开启子进程(不会停)
    join (阻塞方法),等子进程结束再运行
    def(函数进程)
    target=函数(使函数正常运行)
    args=(i,)(以元组的方式进行传值,)
    注意:def wsy(参数)
    p.join([timeout]):主线程等待p终止(强调:是主线程处于等的状态,而p是处于运行的状态)。timeout是可选的超时时间,需要强调的是,p.join只能join住start开启的进程,而不能join住run开启的进程
    class 类

     

  • 相关阅读:
    二维数组重复合并 并计算
    处理formdata传递的json数据
    thinkphp lock 锁 的使用和例子
    docker 更新后 和wsl2直接集成
    ubuntu apt 换阿里镜像源
    使用phpstorm将本地代码实时自动同步到远程服务器
    notepad++ markdown主题
    【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
    hyperf 安装扩展 protobuf
    bt[宝塔]安装redis
  • 原文地址:https://www.cnblogs.com/Darry-Ring/p/12659511.html
Copyright © 2011-2022 走看看