는 스레드를 사용하는 선점형 멀티태스킹보다 안전한 대안이 될 수 있다. 단순하지 않은 스레드 기반
애플리케이션에서 때때로 발생하는 오류, 경합 조건, 혹은 비결정론적 위험 요소
nondeterministic
danger
가 발생하지
않는다.
●
Asyncio
를 통해 동시에 수천 개의 소켓 연결을 간단히 처리할 수 있다. 또한 웹소켓
WebSocket
이나 사물인터넷
internet
of
things
(
IoT
)을 위한
MQTT
Message
Queuing
Telemetry
Transport
같은 신기술에서 지원하는 수명이 긴 연결도
처리할 수 있다.
바로 이것이다.
프로그래밍 모델 관점에서 보면, 스레딩의 여러
CPU
와 공유 메모리(스레드 간 효율적 통신의
수단)를 사용하는 방식이 계산 위주 작업을 가장 잘 수행할 수 있어 계산 위주 작업이 많은 분
야에 가장 적합하다. 하지만 다른 문제들을 발생시킬 수도 있어 필요악이다.
네트워크 프로그래밍은 스레딩을 필요로 하는 영역은
아니다
. 네트워크 프로그래밍의 중요한
특징은 ‘어떤 일들이 일어나기를 기다림’이라는 많은 작업들로 구성되어 있다는 점이다. 따라서
여러
CPU
에 작업들을 효율적으로 분배하기 위한 운영체제와의 연계 작업이 필요 없다. 또한
공유 메모리 접근 시 발생할 수 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.