English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python에서 fork()를 사용하여 서브 프로세스를 생성하려면?

우리의 임무는 자식 프로세스를 생성하고 사용하며fork()Python의 함수는 부모 프로세스와 자식 프로세스의 프로세스 ID를 표시합니다.

사용될 때fork()그리고 자신의 복사본을 생성합니다. 이는 LINUX, UNIX의 매우 중요한 측면입니다.fork()다중 스레드 환경에 주로 적용됩니다. 이는 부모 스레드에서 생성된 자식 스레드가 이 스레드를 반복적으로 실행한다는 것을 의미합니다. 오류가 발생하면 이 메서드는 음수 값을 반환하며, 자식 프로세스는 0을 반환하며, 그렇지 않으면 양수 값을 반환하여 부모 프로세스에서 있다는 것을 의미합니다.

fork()모듈은 OS 모듈 또는 pseudo terminal 모듈인 PTY를 통해 호출할 수 있습니다. 따라서 이를 위해 os 또는 pty를 가져와야 합니다.

fork()프로세스를 생성하며, 파라미터를 포함하고 프로세스 ID를 반환하는 기능입니다. 사용됩니다fork()새 프로세스를 생성하는 주요 이유는 호출자의 자식 프로세스로서 실행되는 프로세스를 생성하는 것입니다. 새 자식 프로세스를 생성할 때, 두 프로세스는 다음 명령어를 실행합니다.

fork()우리의 반환 값은 0을 반환하면 우리가 자식 프로세스일 때 우리가 어느 프로세스인지 이해할 수 있습니다. 긍정적인 값을 반환하면 부모 프로세스이고, 음수 값을 반환하면 오류가 발생한 것을 의미합니다.

예제 코드

import os
   def parentchild():
      n = os.fork()
   if n > 0:
      print("Parent 프로세스: ", os.getpid())
   else:
      print("Child 프로세스: ", os.getpid())
# 드라이버 코드
parentchild()

출력 결과

Parent 프로세스: 8023
Child 프로세스: 8024
$

pseudo terminal实用程序 모듈 pty는 pseudo terminal 개념을 처리하는 데 정의되었습니다. 이 기능을 사용하면 다른 프로세스를 시작하거나, 제어 터미널에서 프로그램을 읽거나 쓸 수 있습니다.

이 모듈은 매우 플랫폼 중립적입니다. 이러한 작업을 실행하려면 UNIX 시스템을 사용해야 합니다.

예제 코드

import pty, os
   def process_parent_child():
      (process_id, fd) = pty.fork()
    + 
   print("Child 프로세스의 Process ID는: " + str(process_id))
process_parent_child()

출력 결과

Current 프로세스의 Process ID는: 12508
Child 프로세스의 Process ID는: 12509