2022. 4. 23. 11:47ㆍjava/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 |