Queue 와 Thread의 관계

2020. 12. 16. 15:542021/JOB DA STUDY

Queue

FIFO(First In First Out)구조로 데이터를 저장하는 구조이다.

Thread

프로그램(프로세스) 내에서 실행되는 흐름의 단위를 말하며, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행하는 경우도있는데 이의 경우 Multi Thread라고 한다.

 

프로젝트를 진행하면서 아래와 같이 cmd창에 Queue=5, Thread=7이 있는걸 봤다.

문득 이 둘사이에 무슨 관계가 있을까라는 생각을 하였고, 곰곰히 생각해 보았다.

 

우선 총 20개의 데이터가 들어오게 되면,

Queue에 5개까지 데이터가 push된다.

이후에 어떤 요청이 들어오게 되면 데이터를 하나씩 pop하여 프로그램을 수행하게 된다.

여기서 Thread는 최대 7개 까지 이므로 동시요청의 경우 최대 7개 까지 수용 가능하다.

 

잔여 데이터 QUEUE THREAD
15 5 0
14 5 1
13 5 2
12 5 3
11 5 4
10 5 5
9 5 6
8 5 7

 

 총 요청은 7개 까지만 받을 수 있으므로 Queue에 들어올수 있는 데이터는 잔여 데이터를 제외한 12개인 셈이다.