목차
- os.fork 함수란?
- os.fork 함수 인자 및 반환 값 설명
- os.fork 간단한 사용 예제
- fork 사용하여 부모 프로세스와 자식 프로세스의 PID 출력
- fork 활용하여 부모, 자식 프로세스 간 다르게 처리 예제
1. os.fork 함수란?
os.fork()
함수는 현재 프로세스를 복제하여 자식 프로세스를 생성하는데 사용됩니다. 이 함수는 POSIX 운영체제에서 사용되며, 부모 프로세스와 자식 프로세스가 거의 동일한 상태를 가지게 됩니다.
2. os.fork 함수 인자 및 반환 값 설명
os.fork()
함수는 인자를 받지 않습니다. 이 함수를 호출하면 현재 실행 중인 프로세스가 복제되어 자식 프로세스가 생성됩니다. 그리고 이 함수의 반환 값은 부모 프로세스와 자식 프로세스에 따라 다르게 됩니다.
- 부모 프로세스의 경우: 부모 프로세스에서
os.fork()
함수가 호출되면, 생성된 자식 프로세스의 PID(프로세스 식별 번호)를 반환합니다. 이를 통해 부모 프로세스는 자식 프로세스의 PID를 알 수 있습니다. - 자식 프로세스의 경우: 자식 프로세스에서
os.fork()
함수가 호출되면, 0을 반환합니다. 이를 통해 자식 프로세스는 본인이 자식 프로세스임을 확인할 수 있습니다.
3. os.fork 간단한 사용 예제
아래 예제는 os.fork를 사용하여 현재 실행중인 프로세스를 복제합니다.
import os
child_pid = os.fork()
if child_pid == 0:
print("This is the child process.")
else:
print("This is the parent process.")
4. fork 사용하여 부모 프로세스와 자식 프로세스의 PID 출력
아래 예제는 복제된 프로세스와 원래의 프로세스의 pid값을 출력하는 예제입니다. 자식 프로세스와 부모프로세스는 다른 pid를 갖습니다. 하지만 프로세스 내에서는 os.fork가 0을 반환하면 자식 프로세스로 구분됩니다.
import os
child_pid = os.fork()
if child_pid == 0:
print("Child process PID:", os.getpid())
else:
print("Parent process PID:", os.getpid())
5. fork 활용하여 부모, 자식 프로세스 간 다르게 처리 예제
import os
def parent_process():
print("This is the parent process.")
print("Parent PID:", os.getpid())
def child_process():
print("This is the child process.")
print("Child PID:", os.getpid())
child_pid = os.fork()
if child_pid == 0:
child_process()
else:
parent_process()
반응형