JAVA

(스레드) Thread와 Scheduling

silver-w 2024. 10. 21. 21:50

"운영체제가 스케줄링을 수행하고

CPU를 최대한 사용하면서 작업이 골고루 수행될 수 있게 최적화 한다."

 

1. 멀티태스킹에서의 Scheduling 과정


 한 CPU 코어가 프로세스A<스레드A1을 실행> - 잠깐 중단 하고 프로세스B<스레드 B1을 실행> - 잠깐 중단...(반복)

 

 □ 단일 코어 스케쥴링 (CPU 코어1개)

대기

스케쥴링 큐  스레드A1, 스레드B2, 스레드B1
CPU 코어 -

 

 프로세스A<스레드A1를 실행> 

스케쥴링 큐   스레드B2, 스레드B1
CPU 코어 스레드A1

 

- 잠깐 중단 하고 프로세스B<스레드 B2를 실행> 

스케쥴링 큐  스레드A1, 스레드B1
CPU 코어 스레드B2

 

- 잠깐 중단..  프로세스B<스레드 B1를 실행> 

스케쥴링 큐  스레드A1 , 스레드B2
CPU 코어  스레드B1

 

□ 멀티 코어 스케쥴링 (CPU 코어 2개 이상)

대기

스케쥴링 큐  스레드A1, 스레드B2, 스레드B1
CPU 코어 -
   

 

 프로세스A<스레드A1를 실행> , 프로세스B<스레드 B2를 실행> 

스케쥴링 큐  스레드B1
CPU 코어1 스레드A1
CPU 코어2  스레드B2

 

스레드A1 잠깐 중단 하고 프로세스B<스레드 B1를 실행> 

스케쥴링 큐  스레드A1
CPU 코어1 스레드B2
CPU 코어2 스레드B1



 


출처 : https://inf.run/NC7kS

 

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런

김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?

www.inflearn.com