在Python中使用fork()创建子进程


我们的任务是创建一个子进程,并使用Python中的fork()函数显示父进程和子进程的进程ID。

当我们使用fork()时,它会创建一个自身的副本,这是LINUX和UNIX的一个非常重要的方面。fork()主要适用于多线程环境,这意味着线程的执行被复制,从父线程创建了一个子线程。如果发生错误,该方法将返回一个负值;对于子进程,它返回0;否则,它返回正值,这意味着我们在父进程中。

fork()模块可以从os模块或称为pty的伪终端模块中使用。因此,我们应该导入os或pty。

fork()用于创建进程,它没有参数,并返回进程ID。使用fork()创建新进程的主要原因是该进程成为调用者的子进程。当创建新的子进程时,两个进程都将执行下一条指令。

我们可以通过fork()的返回值来了解我们所在的进程:返回0表示我们在子进程中,返回正值表示我们在父进程中,返回负值表示发生了一些错误。

示例代码

import os
   def parentchild():
      n = os.fork()
   if n > 0:
      print("Parent process : ", os.getpid())
   else:
      print("Child proces : ", os.getpid())
# Driver code
parentchild()

输出

Parent process : 8023
Child process : 8024
$

伪终端实用程序模块pty用于处理伪终端概念。使用它,我们可以启动另一个进程,还可以使用程序从控制终端读取或写入。

此模块高度依赖于平台。我们应该使用UNIX系统来执行这些操作。

示例代码

import pty, os
   def process_parent_child():
      (process_id, fd) = pty.fork()
   print("The Process ID for the Current process is: " + str(os.getpid()))
   print("The Process ID for the Child process is: " + str(process_id))
process_parent_child()

输出

The Process ID for the Current process is: 12508
The Process ID for the Child process is: 12509

更新于:2020年6月26日

2K+浏览量

启动您的职业生涯

完成课程后获得认证

开始
广告
© . All rights reserved.