멀티스레드? POSIX 에서 사용하는 Thread개념이 곧 스레드 개념이라고 생각하면 쉽다. C를 쓰든, Python을 쓰든 결국 저거만 알면 됨.
운영체제의 작업은 프로세스 단위로 이루어짐.
프로세스 하나에 공유메모리 하나.
프로세스 하나에 여러 스레드.
공유되는 메모리의 데이터를 여러 thread가 *동시에* 사용할 수 없도록 잠그는 일을 mutex가 맡는다. CPython은 reference의 개수를 세는 방법으로 메모리를 관리한다.
mutex를 통해 모든 reference 개수를 일일이 보호하지 말고, Python interpreter 자체를 잠그기로 한다. 이거 하나만 mutex로 보호하면 그동안 우려했던 문제를 해결할 수 있다. 오직 한 thread만이 Python code를 실행할 수 있다는 의미이기도 하다
출처: https://dgkim5360.tistory.com/entry/understanding-the-global-interpreter-lock-of-cpython [개발새발로그]
'Developing.. > POSIX:Linux' 카테고리의 다른 글
git 협업 가이드 (0) | 2021.02.05 |
---|---|
맥에서 cron job생성하기 (0) | 2021.01.12 |
3. Basics - OS로써 LINUX (사용자/네트워크) (0) | 2020.12.07 |
4. LINUX CLI - 파일검색 / 텍스트 처리 (0) | 2020.12.07 |
2. Basics - OS로써 LINUX 구조 (0) | 2020.12.07 |