SAP공장

멀티 쓰레드란? 본문

[WEB]Back-end/Spring MVC

멀티 쓰레드란?

ABAP,ODATA,BTP 2022. 2. 5. 16:50
반응형

# 인프런 김영한의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 개인적으로 정리한 글입니다.

 

정리

 

Q. 쓰레드가 뭐야?

스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.

출처 :https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)

 

즉,

애플리케이션 코드를 하나하나 순차적으로 실행하는 것을 말한다.

쓰레드는 한번에 하나의 코드 라인만 수행

 

 

Q. 다중 쓰레드가 뭐야?

쓰레드는 애플리케이션 코드를하나하나 순차적으로 실행하는 것을 말하기 때문에,

Client의 요청마다 쓰레드를 생성하는 것.

 

Q. 요청이 많이 있는데(Client로 부터 주문이 많이 들어왔는데)  쓰레드가 1개라면??

=> 쓰레드는 한번에 하나의 코드라인만 수행하기 때문에 끝날 때까지 다른 요청은 대기!

 

그래서, 다중 쓰레드를 사용하는 것!

 

 

 

 

 

Q. 요청대로 다중 쓰레드를 만들게 된다면??? 

장점

1. 동시 요청을 처리할수 있다.

2. 하나의 쓰레드가 지연되도 다른 쓰레드들이 동작하기 때문에 처리가 가능하다.

 

단점

1. 쓰레드의 생성 비용은 너무나 비싸다. == 쓰레드 생성마다 CPU 메모리를 사용해야 하는데... 수천만개의 요청이 오면.. 수천개의 쓰레드???? 100원짜리 서비스 하려다 1000만원짜리 하드를 사고 있는 당신을 보게될것.

2. 쓰레드의 생성에는 제한이 없다. == 너무 많이 받다가 서버 터진다.

 

 

Q. 그래서 다중 쓰레드의 보완 방법은? 쓰레드풀

미리 쓰레드풀에 쓰레드들을 적정량 만들어 놓고 요청이 올때 쓰레드풀에서 쓰레드를 파견보내 일을 시킨다.

파견보낸 쓰레드들은 다시 쓰레드 풀로 돌아와서 다음 일을 대기한다. // 마치 인력 사무소 느낌

 

 

Q. 쓰레드 풀의 설정 팁

 

너무 낮게도 설정하지 말고 높게도 설정하지 말자... 적정선을 찾는건 경험을 통한 Skill // 경험하고 공부해서 알아내자

 

 

 

반응형
Comments