python创建进程fork用法

本文实例讲述了python创建进程fork用法。分享给大家供大家参考。具体分析如下:

#!coding=utf-8
import os ,traceback
import time
'''
fork()系统调用是Unix下以自身进程创建子进程的系统调用,
一次调用,两次返回,如果返回是0,
则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid)
'''
source = 10
i = 0
try:
  print '***********************'
  pid = os.fork()
  #这里会返回两次,所以下面的省略号会输出2次
  print '......'
  if pid == 0:#子进程
    print "this is child process"
    source = source - 1
    print 'child process source is ',source
    time.sleep(10)
    print 'child sleep done'
  else:  #父进程
    print "this is parent process"
    print 'parent process source is ',source
    time.sleep(10)
    print 'parent sleep done'
  print source
except:
  traceback.print_exc()

输出如下:

***********************
......
this is child process
child process source is 9
......
this is parent process
parent process source is 10
child sleep done
9
parent sleep done
10

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • Python multiprocessing模块中的Pipe管道使用实例

    multiprocessing.Pipe([duplex]) 返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,conn2只能用来发送消息.不同于os.open之处在于os.pipe()返回2个文件描述符(r, w),表示可读的和可写的 实例如下: 复制代码 代码如下: #!/usr/bin/python #coding=utf-8 import os from multiprocessing import P

  • Python实现处理管道的方法

    本文实例讲述了Python实现处理管道的方法.分享给大家供大家参考.具体分析如下: Linux下的可以施展的最炫的魔法是什么?相信不同的人说法不同,但是如果没有管道,那么恐怕在绚丽魔法的都会失去魔力 这里就介绍怎么使用Python来处理这些管道 管道调用子程序 我们想在程序中使用一个子程序,但是需要动态的传递参数(这里说的动态,是指根据上次子程序输入的结果来决定这次输入什么),怎么办呢,不用慌,有subprocess! 下文我先介绍一个例子代码,以及他的输出结果! #!/usr/bin/pyth

  • python执行子进程实现进程间通信的方法

    本文实例讲述了python执行子进程实现进程间通信的方法.分享给大家供大家参考.具体实现方法如下: a.py: import subprocess, time subproc = subprocess.Popen(['c:\python31\python.exe', 'c:/b.py'], stdin=subprocess.PIPE, shell=True) time.sleep(0.5) print('start') subproc.stdin.write('data\n') subproc.

  • Python进程通信之匿名管道实例讲解

    匿名管道 管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端. os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下: 复制代码 代码如下: #!/usr/bin/python import time import os def child(wpipe):     print('hello from child', os.getpid())     while True:   

  • python实现的守护进程(Daemon)用法实例

    本文实例讲述了python实现的守护进程(Daemon)用法.分享给大家供大家参考.具体如下: def createDaemon(): "'Funzione che crea un demone per eseguire un determinato programma-"' import os # create - fork 1 try: if os.fork() > 0: os._exit(0) # exit father- except OSError, error: pr

  • Python守护进程用法实例分析

    本文实例讲述了Python守护进程用法.分享给大家供大家参考.具体分析如下: 守护进程是可以一直运行而不阻塞主程序退出.要标志一个守护进程,可以将Process实例的daemon属性设置为True.代码如下: import os import time import random import sys from multiprocessing import Process,current_process def daemon(): p = current_process() print "sta

  • Python中使用PIPE操作Linux管道

    Linux中进程的通信方式有信号,管道,共享内存,消息队列socket等.其中管道是*nix系统进程间通信的最古老形式,所有*nix都提供这种通信方式.管道是一种半双工的通信机制,也就是说,它只能一端用来读,另外一端用来写:另外,管道只能用来在具有公共祖先的两个进程之间通信.管道通信遵循先进先出的原理,并且数据只能被读取一次,当此段数据被读取后,马上会从数据中消失,这一点很重要. Linux上,创建管道使用pipe函数,当它执行后,会产生两个文件描述符,分别为读端和写端.单个进程中的管道几乎没有

  • python创建进程fork用法

    本文实例讲述了python创建进程fork用法.分享给大家供大家参考.具体分析如下: #!coding=utf-8 import os ,traceback import time ''' fork()系统调用是Unix下以自身进程创建子进程的系统调用, 一次调用,两次返回,如果返回是0, 则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid) ''' source = 10 i = 0 try: print '***********************' pid = os.for

  • 通过实例解析python创建进程常用方法

    运行程序时,单线程或单进程往往是比较慢的,为加快程序运行速度,我们可以使用多进程,可以理解为多任务同时运行,小编的电脑是四核,所以可以设置四个进程. 下面,我们来了解下多进程的使用: 1.使用multiprocessing模块创建进程 multiprocessing模块提供了一个Process类来代表进程对象,语法如下: Process([group[,target[,name[,args[,kwargs]]]]]) 其中,group:参数未使用,值始终是None target:表示当前进程启动

  • Python Process创建进程的2种方法详解

    前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Python multiprocessing 模块提供了 Process 类,该类可用来在 Windows 平台上创建新进程.和使用 Thread 类创建多线程方法类似,使用 Process 类创建多进程也有以下 2 种方式: 直接创建 Process 类的实例对象,由此就可以创建一个新的进程: 通过继承 P

  • Python多进程multiprocessing、进程池用法实例分析

    本文实例讲述了Python多进程multiprocessing.进程池用法.分享给大家供大家参考,具体如下: 内容相关: multiprocessing: 进程的创建与运行 进程常用相关函数 进程池: 为什么要有进程池 进程池的创建与运行:串行.并行 回调函数 多进程multiprocessing: python中的多进程需要使用multiprocessing模块 多进程的创建与运行: 1.进程的创建:进程对象=multiprocessing.Process(target=函数名,args=(参

  • Python 创建守护进程的示例

    考虑如下场景:你编写了一个python服务程序,并且在命令行下启动,而你的命令行会话又被终端所控制,python服务成了终端程序的一个子进程.因此如果你关闭了终端,这个命令行程序也会随之关闭. 要使你的python服务不受终端影响而常驻系统,就需要将它变成守护进程. 守护进程就是Daemon程序,是一种在系统后台执行的程序,它独立于控制终端并且执行一些周期任务或触发事件,通常被命名为"d"字母结尾,如常见的httpd.syslogd.systemd和dockerd等. 代码实现 pyt

  • Python使用multiprocessing创建进程的方法

    本文实例讲述了Python使用multiprocessing创建进程的方法.分享给大家供大家参考.具体分析如下: 进程可以通过调用multiprocessing的Process进行创建,下面代码创建两个进程. [root@localhost ~]# cat twoproces.py #!/usr/bin/env python from multiprocessing import Process import os def output(): print "My pid is :%d\n&quo

  • 使用C语言的fork()函数在Linux中创建进程的实例讲解

    在Linux中创建一个新进程的唯一方法是使用fork()函数.fork()函数是Linux中一个非常重要的函数,和以往遇到的函数有一些区别,因为fork()函数看起来执行一次却返回两个值. fork()函数用于从已存在的进程中创建一个新进程.新进程称为子进程,而园进程称为父进程.使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间,包括进程的上下文.代码段.进程堆栈.内存信息.打开的文件描述符.符号控制设定.进程优先级.进程组号.当前工作目录.根目录.资源限

  • Python 创建空的list,以及append用法讲解

    Python中list的用法:如何创建list,如何表达list中的元素,如何修改和删除list 运行环境:Python 3.6.2 0.空list的创建: l = list() 或者: l = [] 1.list中元素的创建和表达 fruits = ['apple', 'banana', 'pear', 'grapes', 'pineapple', 'watermelon'] fruits[2] #从0开始数起,第三个元素 pear 2.list中元素的更改 fruits[2] = 'toma

随机推荐