multiprocessing2 [Python] 파이썬 GIL이란? 기본 Python 구현 python.org에 배포된 Python 프로그래밍 언어의 정식 구현체이자, 우리가 일반적으로 사용하는 파이썬은 C 언어로 작성된 CPython이다. Python은 인터프리터 프로그래밍 언어이며, Python 코드는 PVM(Python Virtual Machine)이라고 하는 가상 머신에서 컴퓨터가 읽을 수 있는 바이트코드 명령어로 컴파일된다. 우리가 일반적으로 볼 수 있는 .pyc 파일이나 __pycache__ 폴더가 가상 머신에서 해석되는 바이트코드이다. 우리는 흔히 "Python의 모든 것은 객체다." 라는 말을 들어보았을 것이다. int 와 str 과 같은 유형도 객체이다. CPython의 구현 수준에서는 이는 올바른 정의이며, 이 안에는 다른 모든 객체가 사용하는 PyOb.. 프로그래밍 언어/파이썬 2023. 2. 14. [OS] 멀티 프로세스 & 멀티 스레드 with Python 프로세스 · 스레드 프로세스가 디스크로부터 메모리에 적재되어 실행 중인 프로그램이라면 스레드는 프로그램을 실행하는 주체이다. 프로세스는 Code, Data, Stack, Heap의 구조로 된 독립된 메모리 영역을 할당받는다. 이들은 서로 격리되어 있으며, 별도의 고유한 주소 공간을 가진다. 운영 체제는 각 프로세스에 대한 완전한 정보를 유지관리하기 위해 데이터 구조를 사용하는데, 이를 PCB(Process Control Block)이라고 한다. 프로세스가 서로 독립적이기 때문에 IPC를 사용한 통신을 한다. 컨텍스트 스위치 비용이 비싸다. 동기화 작업이 필요 없다. 스레드는 경량화된 프로세스이다. 한 프로세스 내에서 Stack만 할당받고, Code, Data, Heap 영역을 서로 공유한다. 공유된 자원.. 카테고리 없음 2023. 1. 18. 이전 1 다음 반응형