网站首页  汉语字词  英语词汇  考试资料  写作素材

请输入您要查询的考试资料:

 

标签的border 样式在浏览器中显示不出来的解决方法
  • 剖析标注HTML元素时class比id所具有的优势
  • Table显示你要显示的边框代码
  • 点击按钮文字变成input框,点击保存变成文字的实现代码
  • 关于table表格中的内容溢出布局方法
  • html的footer置于页面最底部的简单实现方法
  • 移动端网页大小自适应的实现方法
  • latchkey kid
  • latchkey-kid
  • latch on
  • latch-on
  • latch-onto
  • latch onto sb
  • latch-onto-sb
  • latch onto something
  • latch onto sth
  • latch-onto-sth
  • 羚牛
  • 羚羊
  • 羚羊挂角
  • 羝
  • 羝羊触藩
  • 羞
  • 羞与为伍
  • 羞人
  • 羞人答答
  • 羞口
  • 2022年入党积极分子思想汇报模板10篇
  • 2022年入党积极分子思想汇报精选10篇
  • 2022年最新季度思想汇报精选9篇
  • 疫情期间入党积极分子思想汇报10篇
  • 2022积极分子疫情防控思想汇报10篇
  • 庆祝建国70周年征文优秀范文大全
  • 党员干部述职述廉报告范文3篇
  • 我的自画像初中作文精选10篇_初中作文
  • 我的自画像作文500字左右精选10篇
  • 打赢脱贫攻坚战心得体会范本最新
  • 标题 python中的进程分支fork和exec详解
    分类 范文、应用文-IT技术专栏-脚本栏目
    内容
        在python中,任务并发一种方式是通过进程分支来实现的.在linux系统在,通过fork()方法来实现进程分支.
        1.fork()调用后会创建一个新的子进程,这个子进程是原父进程的副本.子进程可以独立父进程外运行.
        2.fork()是一个很特殊的方法,一次调用,两次返回.
        3.fork()它会返回2个值,一个值为0,表示在子进程返回;另外一个值为非0,表示在父进程中返回子进程id.
        以下只能在linux中运行,不能在window下运行.
        进程分支fork()
        实例如下:
        代码如下:
        #!/usr/bin/python
        #coding=utf-8
        import os
        def child():
        print('hello from child', os.getpid())
        os._exit(0)
        def parent():
        pid = os.fork()
        if pid == 0:
        child()
        print 'fork child process error!'#如果打印该字符串,说明调用child()出错
        else:
        print('hello from parent', os.getpid(), pid)
        parent()
        运行结果如下:
        代码如下:
        ('hello from parent', 29888, 29889)
        ('hello from child', 29889)
        从结果不难看出, child()后的print字符并没有打印处理,说明调用child()是没有返回的.
        fork和exec的组合
        从上面的例子来看,调用child()方法后就直接退出了.但在实际的应用中,我们希望分支出来的子进程能独立运行另外一个新的程序.这时需要用到exec方法替换子进程,并且替换后进程的pid不会改变.exec方法不会返回.
        首先解释一下exec相关的8个方法组:
        os.execv(program, cmdargs)
        基本的”v”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行参数字符的列表或元组.
        os.execl(program, cmdarg1, cmdarg2, …, cmdargn)
        基本的”l”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行多个字符参数.
        os.execvp(program, args)
        “p”模式下,基本的”v”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行参数字符的列表或元组.运行新程序的搜索路径为当前文件的搜索路径.
        os.execlp(program, cmdarg1, cmdarg2, …, cmdargn)
        “p”模式下,基本的”l”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行多个字符参数.运行新程序的搜索路径为当前文件的搜索路径.
        os.execve(program, args, env)
        “e”模式下,基本的”v”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行参数字符的列表或元组.最后还要传入运行新程序的需要的环境变量env字典参数.
        os.execle(program, cmdarg1, cmdarg2, …, cmdargn, env)
        “e”模式下,基本的”l”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行多个字符参数.最后还要传入运行新程序的需要的环境变量env字典参数.
        os.execvpe(program, args, env)
        在”p”和”e”的组合模式下,基本的”v”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行参数字符的列表或元组.最后还要传入运行新程序的需要的环境变量env字典参数.运行新程序的搜索路径为当前文件的搜索路径.
        os.execlpe(program, cmdarg1, cmdarg2, …, cmdargn, env)
        在”p”和”e”的组合模式下,基本的”l”执行形式,需要传入可执行的程序名,以及用来运行程序的命令行多个字符参数.最后还要传入运行新程序的需要的环境变量env字典参数.运行新程序的搜索路径为当前文件的搜索路径.
        newprocess.py代码如下:
        代码如下:
        #!/usr/bin/python
        #coding=utf-8
        import os
        def child():
        print('hello from child', os.getpid())
        os._exit(0)
        child()
        主代码如下:
        代码如下:
        #!/usr/bin/python
        #coding=utf-8
        import os
        def child():
        print('hello from child', os.getpid())
        os._exit(0)
        def parent():
        pid = os.fork()
        if pid == 0:
        os.execlp('python', 'python', 'newprocess.py')
        assert false, 'fork child process error!'
        else:
        print('hello from parent', os.getpid(), pid)
        parent()
        输出如下:
        代码如下:
        $ python testfork.py
        ('hello from parent', 30791, 30792)
        $ ('hello from child', 30792)
    随便看

     

    客官网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

     

    Copyright © 2002-2024 cumcu.com All Rights Reserved
    更新时间:2026/11/13 6:06:20