gil1 GIL - POSIX THREAD 멀티스레드? POSIX 에서 사용하는 Thread개념이 곧 스레드 개념이라고 생각하면 쉽다. C를 쓰든, Python을 쓰든 결국 저거만 알면 됨. 운영체제의 작업은 프로세스 단위로 이루어짐. 프로세스 하나에 공유메모리 하나. 프로세스 하나에 여러 스레드. 공유되는 메모리의 데이터를 여러 thread가 *동시에* 사용할 수 없도록 잠그는 일을 mutex가 맡는다. CPython은 reference의 개수를 세는 방법으로 메모리를 관리한다. mutex를 통해 모든 reference 개수를 일일이 보호하지 말고, Python interpreter 자체를 잠그기로 한다. 이거 하나만 mutex로 보호하면 그동안 우려했던 문제를 해결할 수 있다. 오직 한 thread만이 Python code를 실행할 수 있다는.. 2020. 12. 30. 이전 1 다음