etc/흥미로운 것

[Thread] 스레드 풀 (Thread pool)

hojak99 2017. 3. 17. 19:59

스레드 풀(Thread pool) 이란 무엇일까?


구글링을 해도 한번에 스레드 풀에 대한 개념을 명확히 알지 못했다. 그래서 몇몇 블로그들에 있는 내용들로 한 번 내가 이해한 스레드 풀에 대해서 이야기 해보려고 한다. 물론 틀릴 수도 있으니 무조건 믿지말자. 항상 중요하다. 블로그에 있는 말을 곧이 곳대로 믿지말자!




스레드 풀(Thread pool): 일정 갯수의 스레드를 두어, 만약 스레드에서 작업해야 할 일이 생긴다면 대기 상태인 스레드가 있는지 보고, 만약 대기 상태인 스레드가 있다면 그 스레드로 작업해야할 일을 처리하고, 모두 처리한다면 그 스레드를 소멸시키는 것이 아닌, 다시 대기 상태로 전환하는 것을 말(하는 것 같음)한다.



자바에서 스레드 풀을 사용하는 이유는 JVM의 스레드는 OS의 스레드 모델을 그대로 가져와서 OS에 스레드 관리를 이양할 수 있는 장점이 있지만 이로 인해 스레드를 생성하고 소멸시키는 과정에서 OS 오버헤드가 생기기 때문에 소멸시키지 않고 대기 상태로 전환시켜 처리할 작업이 생길때마다 그 스레드로 처리를 한다.







우선 간단히 이야기를 했지만 깊게 들어간다면 내가 모르는 것도 많이 나올 것 같다. 자바로 스레드 풀을 구현하는 방법이 있는데 이 부분은 추후 포스팅을 할 예정이다.

반응형