在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
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP