Hyunebee

싱글 쓰레드 멀티 쓰레드 본문

Java/Java의 정석

싱글 쓰레드 멀티 쓰레드

Hyunebee 2022. 3. 15. 19:38

싱글 쓰레드와 멀티쓰레드의 비교

왼쪽 그림의 경우와 오른쪽의 그림의 차이는 무엇일까.

멀티 쓰레드를 활용하면 단일 쓰레드를 사용하는 것보다 시간이 오래걸리게 된다. 그 이유는 쓰레드간의 문맥교환이 일어나기 때문이다. 단점이 있다면 장점도 있다. 이렇게 진행한다면 사용자로 하여금 두개의 작업이 동시에 일어나는것 처럼 느끼게 할 수 있다.

 

쓰레드의 우선순위

쓰레드 또한 우선순위를 지정해 줄 수 있다. 쓰레드가 수행하는 작업의 중요도에 따라 쓰레드의 우선순위를 서로 다르게 지정하여 특정 쓰레드의 작업시간을 늘려줄 수 있다.

 

void setPriority(int newPriority) : 쓰레드의 우선순위를 지정

int getPriority : 우선 순위를 반환

 

Thread class를 보면 최대 최소 순위와 기본 순위가 정해져 있다. 

main 메서드를 수행하는 쓰레드는 우선순위가 5이므로 main메서드 내에 생성하는 쓰레드는 자동으로 5가 적용된다. 

 

하지만 이러한 우선 순위는 싱글 코어에서만 보장된다. 멀티 코어 프로세스인 경우에는 실행시간과 실행기회를 갖게 될것이라고 기대할 수 없다. 쓰레드에 우선순위가 아닌 작업에 우선순위를 두어 처리하는게 나을 수 있다. 

 

 

 

'Java > Java의 정석' 카테고리의 다른 글

람다식  (0) 2022.03.17
쓰레드의 실행과 제어  (0) 2022.03.15
Thread  (0) 2022.03.13
Enum  (0) 2022.03.12
제네릭스(Generics)  (0) 2022.03.09