스레드 우선 순위

2022. 4. 23. 11:47java/java

*동시성과 병렬성

 1) 동시성

  -멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아 가며 실행하는 성질

 2) 병렬성

  -멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질

 

*스레드 스케쥴링

 1) 스레드의 개수가 코어의 수보다 많을 경우

  - 스레드를  어떤 순서로 동시성으로 실행할 것인가를 결정 -> 스레드 스케쥴링

  - 스레드 스케쥴링에 의해 스레들은 번갈아 가면서 그들의 run()메소드를 조금씩 실행

*자바의 스레드 스케쥴링

 -우선 순위 방식과 순환 할당 방식을 사용

  (우선 순위 방식(코드로 제어 가능) : 우선 순위가 높은 수레드가 실행 상태를 더 많이 가지도록 스케쥴링)

  (순환 할당 방식(코드로 제어 부락) : 시간 할당량(Time slice)을 정해서 하나의 스레드를 정해진 시간만큼 실행하는 방식

 

*스레드 우선 순위

 1)스레드들이 동시성을 가질 경우 우선적으로 실행할 수 있는 순위

 2)우선 순위는1(낮음)에서부터 10(높음)까지로 부여

    -모든 스레드들은 기본적으로 5의 우선 순위를 할당

 3)우선 순위 변경 방법

    thread.setPriority(우선순위);

 4)우선 순위 효과

  -싱글 코어 경우

    우선 순위가 높은 스레드가 실행 기회를 더 많이 가지기 때문에 우선 순위가 낮은 스레드보다 계산 작업을 빨리 끝낸다.

  -멀티 코어 경우

    쿼드 코어 경우에는 4개의 스레드가 병렬적으로 실행될 수 있기 때문에

    4개 이하의 스레드를 실행할 경우에는 우선 순위 방식은 크게 영양을 미치지 못한다.

 

 

'java > java' 카테고리의 다른 글

동기화 메소드와 동기화 블록  (0) 2022.04.26
입력 스트림과 출력 스트림 개념  (0) 2022.04.25
작업 스레드 생성과 실행  (0) 2022.04.22
프로세스와 스레드  (0) 2022.04.22
익명 객체  (0) 2022.04.22