asynchronous 정의

비동기적은… 연산이 어떻게 일어나는가가 아니라 이벤트가 완료된 후에 코드 실행을 재개하는 방식이 중요

  • 협동형 멀캐에서는 운영체제가 직접 컨텍스트 전환 안한다.
    • 대신, 제어권은 스케줄러에 돌려줄 시점을 각 작업이 알아서 함
    • 즉, 스케줄러에 ‘나 지금 일 쉬고있으니 다른작업 실행하셈’ 라고 요청하는것같은거
    • 스케줄러가 할 일은 작업에 사용할수잇는 처리자원 배정하는것뿐
    • 음…그러니까 쉬고있어도 스레드는 그냥있는거고 자원할당이 안된거네 그거 붙잡고있구먼 그래서 워크 스레드가 하나뿐이어도 다른 스레드가 현재 실행 중인 스레드를 대채 할 수 없다.

이 방식을 협동형이라고 하는 이유는 개발자와 런타임환경이 함께 협력해야 가능한 처리 자원을 가장 효율적으로 사용할 수 있기 때문임!

협동형 멀티캐스팅은 macOS X, Windows 95, NT 이후 적용됨