GIL, Global Interpreter Lock 멀티스레드 환경에서는 여러스레드에서 동시에 객체에 접근하려 하는 동기화 문제(Race Condition)가 발생할 수 있습니다. 이를 해결하기 위해 스레드가 객체에 접근하는 것을 막기 위한 Mutex/Semaphore 가 필요합니다. C에서 Thread를 사용할 때, 멀티스레드 환경에서 Race Condition이 일어나지 않도록 하는 것을 개발자에게 맡깁니다. 반면, Python은 GIL를 통해 인터프리터가 한 스레드만 하나의 바이트코드를 실행시키도록 Lock을 겁니다. Python 메모리 관리 Python이 할당된 메모리를 관리하는 기본적인 방식 두 가지가 있습니다. Garbage Collection Reference Counting 이 중 Refe..
동기식/비동기식 프로그램 동기식 프로그램 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다린 후 다음 작업을 수행하도록 구현된 프로그램입니다. 데이터를 주고받는 '순서'가 중요할 때 사용됩니다. 한 작업에 대한 시간이 길어질 경우, 전체 응답이 지연될 수 있습니다. 작업이 끝날 때 따로 이벤트를 감지하고 처리하는 과정에 소요되는 시간이 없습니다. 비동기식 프로그램 어떤 작업을 요청했을 때 그 작업이 종료될 때까지 기다리지 않고(작업을 위임하고), 다음 작업을 수행하도록 구현된 프로그램입니다. 요청했던 작업이 끝나면 결과를 받고, 그에 따른 추가 작업이 있다면 수행합니다. 요청 순서에 상관없이, 동시에 다수의 작업을 처리할 수 있습니다. 작업이 끝날 때 따로 이벤트를 감지하고 결과를 받아 그에 따른 ..
Comment