요약
- 선점형 동시성 모델은 운영체제나 런타임이 작업을 중단시키고, 다른 작업을 실행시키는 모델
본문
- 선점형 동시성 모델은 운영체제나 런타임이 강제로 작업을 중단시키고 다른 작업을 실행시킨다.
- 일반적으로 스케줄러 정책이나, 시분할에 의해 실행이 나눠짐
- OS 커널이 타이머 인터럽트를 이용해서 일정 주기마다 실행중인 스레드를 멈추고 다른 스레도 전환함
- 장점
- 개발자가 yield를 하지 않아도 자동으로 공정한 실행을 보장함
- CPU 바운드 작업에서도 여러 스레드가 동시에 진행되는 것처럼 보임
- 단점
- Context switch가 언제 일어날지 예측하기 어려움
- lock, 뮤텍스와 같은 동기화 도구들이 필요함
- context switch로 인한 overhead
- 예시
- python threading