아이템 73. 스레드 그룹은 피하라.
73. 스레드 그룹은 피하라.
스레드 시스템이 제공하는 기본적인 추상화 단위(abstraction) 가운데 스레드 락, 모니터(monitor) 이외에도 스레드 그룹(Thread group)이라는 것이 있다. 스레드 그룹은 원래 애플릿(applet)을 격리시켜(isolating) 보안 문제를 피하고자 고안된 것이었으나, 그 목표를 달성하지 못했다.
스레드 그룹은 이제 페기된 추상화 단위이다.
그나마, 쓸모 있는 기능으로 무점검 예외를 던졌을 때 가져오는 유일한 수단인 ThreadGroup.uncaughtException
이 있었는데,
이 마저도 자바 1.5부터는 Thread.setUncaughtExceptionHandler
가 제공되고 있어 더 이상 사용할 필요가 없다.
결론
- 스레드 그룹에는 쓸만한 기능이 별로 없으며, 그나마 쓸만하다 시픈 기능에는 결함이 많다.
- 스레드를 논리적인 그룹으로 나누는 클래스를 만들어야 한다면, 스레드 풀 실행자(thread pool executor) 를 이용하는 것이 바람직하다.