C 확장을 호출하면 Python 스레드의 CPU 작업이 병렬화될 수 있나요? GIL 해제 범위와 내부 스레드를 어떻게 확인하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
C 확장이 GIL을 해제한 구간에서는 다른 Python thread가 실행하거나 native 계산이 병렬일 수 있습니다. 모든 C 코드가 자동으로 GIL을 놓는 것은 아니며 내부 라이브러리 thread도 전체 동시성에 영향을 줍니다.
순수 Python loop와 native 호출을 별도 프로파일링하고 thread 수·CPU·메모리 대역폭을 봅니다. GIL 해제 동안 Python 객체 접근·확장의 thread safety 계약을 확인합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- C 확장이 GIL을 해제한 구간에서는 다른 Python thread가 실행하거나 native 계산이 병렬일 수 있습니다. 모든 C 코드가 자동으로 GIL을 놓는 것은 아니며 내부 라이브러리 thread도 전체 동시성에 영향을 줍니다.
- GIL 해제 동안 Python 객체 접근·확장의 thread safety 계약을 확인합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: C 확장이 GIL을 해제한 구간에서는 다른 Python thread가 실행하거나 native 계산이 병렬일 수 있습니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.