zoukankan      html  css  js  c++  java
  • python 的os.getpid()和os.fork()函数

    import os
    import sys
    import time
    
    processNmae = 'parent'
    
    print "Program executing ntpid:%d,processNmae:%s"%(os.gitpid(),processNmae)
    
    #attempt to fork child process 
    try:
    	forkPid = os.fork()
    except OSError:
    	sys.exit("Unable to create new process.")
    
    # Am I parent process?
    if forkPid != 0:
    	print "Parent executingn"+"tpid:%d,forkPid:%d,processNmae:%s"%(os.getpid(), forkPID,processName)
    
    # Am I child process?
    elif forkPID == 0:
            processName = "child"
            print "Child executingn" + "tpid: %d, forkPID: %d, processName: %s" % (os.getpid(), forkPID,processName)
    print "Process finishingntpid: %d, processName: %s" % (os.getpid(), processName)

     程序每次执行时,操作系统就会创建一个新的进程来运行程序指令。进程还可以调用os.fork,要求操作系统新建一个进程。“父进程”是调用os.fork的进程。父进程所创建的任何进程都是子进程。每个进程都有一个不重复的“进程ID号”,或称“pid”,它对进程进程进行标识。
    进程调用fork函数时,操作系统会新建一个子进程,它本质上与父进程完全相同。子进程从父进程继承了多个值的拷贝,比如全局变量和环境变量。两个进程唯一的区别就是fork的返回值。
    child(子)进程接收返回值为0,而父进程接收子进程的pid作为返回值。调用fork函数后,两个进程并发执行同一个程序,首先执行的是调用了fork之后的下一行代码。父进程和子进程既并发执行,又相互独立;也就是说,它们是“异步执行”的。

    转自http://www.dajo.com.cn//a/boke/python/2013/1124/135.html

  • 相关阅读:
    记录一次redis-shake跨云迁移阿里云redis混合型到腾讯云tendis
    nginx 通过配置文件切割访问日志
    saltstack 批量修改hostname
    linux 免交互式修改密码
    zabbix 接入钉钉机器人报警
    监控体系
    zabbix自动化监控三种方式
    zabbix 自定义脚本监控activemq
    2021.07.20 总结
    微信小程序总结
  • 原文地址:https://www.cnblogs.com/lczit/p/4433091.html
Copyright © 2011-2022 走看看