강의 메모 - ThreadGroup
#
개요
#
- 자바는 스레드 그룹(ThreadGroup)이라는 객체를 통해서 여러 스레드를 그룹화하는 편리한 방법을 제공한다
- ThreadGroup은 스레드 집합을 나타내며 스레드 그룹에는 다른 스레드 그룹도 포함될 수 있고 그룹 내의 모든 스레드는 한 번에 종료하거나 중단할 수 있다
- 스레드는 반드시 하나의 스레드 그룹에 포함되어야 하며 명시적으로 스레드 그룹에 포함시키지 않으면 자신을 생성한 스레드가 속해 있는 스레드 그룹에 포함되어 진다
- 일반적으로 사용자가 main 스레드에서 생성하는 모든 스레드는 기본적으로 main 스레드 그룹에 속하게 된다
- 코드로 별도 스레드를 만들면 기본적으로 main 스레드 그룹에 속해진다. 대신 명시적으로 csustom thread group을 만들어서 셋팅하면 여기에 속하게된다.
JVM의 스레드 그룹 생성 과정
#
- JVM 이 실행되면 최상위 스레드 그룹인 system 스레드 그룹이 생성된다
- JVM 운영에 필요한 데몬 스레드들을 생성해서 system 스레드 그룹에 포함시킨다
- system 스레드 그룹의 하위 스레드 그룹인 main 스레드 그룹을 만들고 main 스레드를 그룹에 포함시킨다
Thread Group 구조
#
- 스레드 그룹에 설정된 max priority를 개인 스레드 max priority가 넘을 수 없다.
- 스레드 그룹의 max priority가 5일때 개인 스레드 max priority를 7로 설정하더라도 5다.