Python GIL(global interpreter lock)

기린이·2023년 6월 13일
0

CS 지식

목록 보기
9/15

Garbage Collection

파이썬에서 메모리를 관리하는 방법.
어떤 객체의 참조횟수가 0이라면 메모리를 회수한다.

Race condition

하나의 값에 여러 쓰레드가 접근하여 올바르지 않게 값이 쓰이거나 읽히는 것

Mutex

멀티 스레딩 환경에서 하나의 스레드가 작업 중일때 다른 스레드의 접근을 막는 것

GIL

정의

하나의 스레드가 파이썬 객체에 접근 중이라면 나머지 스레드가 접근할 수 없도록 인터프리터에 lock을 거는 것

사용 이유

파이썬은 garbage collection방법으로 메모리를 관리하기에 race condition이 발생하지 않도록 파이썬의 모든 객체에 뮤텍스를 걸어야한다. 이는 매우 비효율적이다.

따라서, 파이썬 인터프리터에 lock을 걸어 하나의 스레드가 파이썬 인터프리터를 실행하고 있으면 다른 스레드가 파이썬 인터프리터를 실행하지 못하게 하는 것이다.

참고
https://dgkim5360.tistory.com/entry/understanding-the-global-interpreter-lock-of-cpython
https://it-eldorado.tistory.com/160

profile
중요한 것은 속력이 아니라 방향성, 공부하며 메모를 남기는 공간입니다.

0개의 댓글