멀티 스레드는 동시성 또는 병렬성으로 실행되기 때문에 이 용어들에 대해서 이해하는것이 좋습니다.
💡 동시성은 멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아가며 실행하는 성질을 말하고,
💡 병렬성은 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질을 말합니다.
스레드의 개수가 코어의 수보다 많을 경우, 스레드를 어떤 순서에 의해 동시성으로 실행할 것인가를 결정해야하는데, 이것을 스레드 스케줄링이라고 합니다.
스레드 스케줄링에 의해 스레드들은 아주 짧은 시간에 번갈아가면서 그들의 run() 메소드를 조금씩 실행합니다.
우선순위 방식은 우선순위가 높은 스레드가 실행 상태를 더 많이 가져가도록 스케줄링하는 것을 말합니다.
순환 할당 방식은 시간 할당량을 정해서 하나의 스레드를 정해진 시간만큼 실행하고 다시 다른 스레드를 실행하는 방식을 말합니다.
우선순위 방식은 컨트롤 할 수 있지만 순환 할당 방식은 JVM에서 관리하기 때문에 컨트롤 할 수 없습니다.
1~10의 우선순위를 갖고 있고 기본적으로 5가 할당된다.
thread.setPriority(우선순위)
를 통해서 우선순위 설정이 가능하다.