JAVA Thread


### Java 스레드는 시작과 동시에 1MB의 스택 공간을 요구로 하고 스레드와 스레드 사이의 보호 공간(guard page)까지 필요

> ![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fccfa6d7c-df41-4fc6-9efb-728bdb065d2b%2FUntitled.png?table=block&id=0c6d5748-5f44-4b47-8021-9529c44668ca&cache=v2)
> 더 많은 스레드를 생성해낼 수록 heap 공간이 더 적어지는 문제점
> 웹 서버를 만든다고 했을 때 요청 당 1개의 스레드를 만들게 되면 결국 우리는 `OutOfMemoryError` 거나
> 메모리 공간을 넘어 프로그램이 가상 메모리에 페이징되면서 전체적인 성능 저하

> ![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F8e84d0cf-8550-40f4-9b59-da4b0a2c9b1e%2FSmartSelect_20200223-121045_Facebook.jpg?table=block&id=8750e261-8f3d-46fe-ace6-c0f3420eb233&cache=v2)






> [Goroutines vs Threads](https://tech.ssut.me/goroutine-vs-threads/)




