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

我们的任务是创建一个子进程,并使用fork()Python中的函数显示父进程和子进程的进程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