<aside> 📌 Summary

쓰레드와 쓰레드 풀에 대한 설명입니다. 쓰레드는 프로세스 내에서 실행되는 실행 단위이며, 쓰레드 풀은 쓰레드를 미리 생성해 두어 작업 처리에 사용되는 쓰레드를 제한된 개수만큼 정해 놓고 작업 큐에 들어오는 작업들을 하나씩 쓰레드가 맡아 처리하는 기법입니다. 쓰레드 풀의 장점으로는 쓰레드를 생성/수거하는데 비용이 들지 않으며, 쓰레드 풀을 미리 만들어 두기 때문에 시스템 자원을 줄일 수 있습니다. 단점으로는 쓰레드 풀에 쓰레드를 너무 많이 생성해 두었다가 사용하지 않으면 메모리 낭비가 발생합니다.

</aside>

0. 프로세스와 쓰레드

0-1. 프로그램을 실행해주는 주체 = 프로세스 🏡

0-2. 작업을 처리해주는 주체 = 쓰레드 💁

<aside> 📌 프로세스와 쓰레드 요약

프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용

레드 : 다른 쓰레드와 공간과 자원을 공유하면서 사용

</aside>

1. 쓰레드

1-1. 프로세스🏡와 쓰레드💁의 차이점

1-2. 프로세스🏡와 쓰레드💁의 주소공간

1-3. 멀티 프로세스🏡🏡와 멀티 쓰레드💁‍♂️💁

<aside> 📌 쓰레드 요약

쓰레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 흐름 입니다. 하나의 프로세스는 하나 이상의 쓰레드를 갖고 있습니다.

2. 쓰레드 풀

2-1. 쓰레드 풀 이란

2-2. 쓰레드 풀을 사용하는 이유

2-3. 쓰레드 풀의 장단점

2-4. 동시성(Concurrency)과 병렬성(Parallelism)

<aside> 📌 쓰레드 풀 요약

작업 처리에 사용되는 쓰레드를 제한된 개수만큼 정해 놓고, 작업 큐에 들어오는 작업들을 하나씩 쓰레드가 맡아 처리하는 기법

</aside>

<aside> 📌 출처

[운영체제] 프로세스와 스레드

[개발자 면접] 프로세스와 스레드의 차이점

OS - 프로세스와 스레드 차이

[Java] 스레드 풀이란?

[OS] 프로세스(Process)와 스레드(Thread) 차이 (멀티 프로세스, 멀티 스레드)

스레드풀(Thread pool)

Thread Pool이란?

</aside>