본문 바로가기
TIL/Network

TIL D-82 멀티스레딩

by 홍차23 2019. 11. 7.

오늘 배운 것>

자바: 스레드와 멀티태스킹

 

thread: 프로그램 코드를 실행하는 하나의 실 혹은 제어의 개념.

multi-processing: 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 기법.

각 프로세스는 고유한 메모리 영역을 보유하고 독립적으로 실행된다. 변수를 공유하지 못하므로, 프로세스 간의 통신이 어렵고 오버헤드가 크다. 과도한 작업량, 시간 소모의 문제점.

 

개선책 -> multi-threading: 하나의 응용프로그램을 동시처리가 가능한 여러 작업으로 분할하고 작업의 개수만큼 스레드를 생성하여 각 스레드로 하여금 하나의 작업을 처리하도록 하는 기법. 모든 스레드는 응용프로그램 내의 자원과 메모리를 공유하므로 통신에 따른 오버헤드가 작고, 스레드 사이의 문맥 교환 시 소요되는 작업량이 작아 문맥 교환이 빠르다. 

예) 웹 서버 소프트웨어는 대표적인 멀티스레드 응용프로그램이다. 네트워크 클라이언트로부터 웹 검색 요청이 전달되면 웹 서버 스레드는 클라이언트를 전담하는 웹 서비스 스레드를 생성하여 검색을 하고 결과를 클라이언트로 전송한다. 100명의 클라이언트 접속시 100개의 웹 서비스 스레드가 각각 자신의 웹 클라이언트의 요청을 서비스하는 것! 

 

 

'TIL > Network' 카테고리의 다른 글

[Network] HTTPS와 SSL인증서  (0) 2020.12.03
[Network] HTTP 프로토콜  (0) 2020.12.03
TIL D-89 Best Effort  (0) 2019.10.31
TIL D-93 Application Layer  (0) 2019.10.27
TIL D-96 애플리케이션 계층-DNS resolution, CDN  (0) 2019.10.25

댓글