ringa_lee2017-04-18 10:10:49
이해하기가 더 쉽습니다. GIL은 Python 바이트 코드가 동시에 프로세스에서
실행되는 하나의 기본 스레드만 갖도록 합니다. 그러나 바이트 코드 자체의 논리에는 스레드가 재진입할 수 있는지 확인하기 위해 여전히 잠금/상호 배제 등이 필요합니다. 왜냐하면 바이트 코드는 실행 프로세스 중 어느 시점에서든 중단되고 다른 스레드로 전환될 수 있기 때문입니다.
카운터 코드 조각:
// 1단계
counter = get_counter()
// 2단계
counter += 1
/ / 3단계
set_counter(카운터)
예상 결과는 두 스레드가 모두 계산되어야 하며 최종 카운터는 2여야 합니다.