bshc.log
로그인
bshc.log
로그인
spawn VS fork
jk01019
·
2023년 4월 23일
0
0
process, thread
목록 보기
11/11
Spawn
윈도우즈 및 리눅스/유닉스에서 사용되는 다른 프로세스 생성 방식 중 하나
새로운 파이썬 인터프리터를 생성하여 자식 프로세스를 생성하는 방법입니다.
이 방식은 운영체제에서 별도의 프로세스를 생성하는 방식이므로, 안전성이 높으며 다양한 운영체제에서 사용됩니다.
nlrl2, pytorch 등등에서는 기본적으로 multiprocessing을 spawn방식으로 합니다.
파이썬의 multiprocessing 모듈에서 사용되는 기본 프로세스 생성 방식 중 하나
파이썬 interpreter를 새로 켜고 돌리려는 타겟이 있는 스크립트를 다시 import 후 타겟 함수 실행
병렬 처리를 구현할 때 사용됩니다.
spawn은 새로운 프로세스를 만들 때,
부모 프로세스의 메모리와 상태를 복제하지 않고 새로운 프로세스를 만드는 방법입니다.
따라서, spawn 방식은 부모 프로세스와 자식 프로세스 사이에 메모리가 공유되지 않습니다.
대신, 각각의 프로세스는 독립적인 메모리 공간을 가지게 됩니다.
fork
fork는 유닉스(Unix) 및 유닉스 기반 운영 체제에서 사용되는 시스템 콜(System call) 중 하나입니다.
C, C++, 자바 등의 언어에서 사용됩니다.
부모 프로세스의 상태와 메모리를 복제하여 자식 프로세스를 생성합니다.
상대적으로 빠르게 프로세스를 생성할 수 있습니다.
부모 프로세스와 자식 프로세스는 메모리를 공유합니다.
현재 프로세스의 모든 state (생성한 객체, 열려있는 파일, import된 것들까지) 전부 메모리에서 그대로 복사 후 타겟 함수 실행
병렬 처리를 수행할 때 자주 사용됩니다.
About_work
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.
이전 포스트
process thread 개념
0개의 댓글
댓글 작성