스케줄링
CPU에 어떤 프로그램이 얼마의 시간동안 실행될지를 OS가 결정하는 것
단순히 시간으로만 작업을 분할하지는 않고 다양한 우선순위와 최적화 기법을 사용한다
동작 예
- OS는 내부에 스케줄링 큐를 가지고 있고 쓰레드들은 큐에서 대기한다
- OS는 큐에서 쓰레드 A를 꺼내 CPU를 통해 실행한다
- OS는 쓰레드 A를 잠시 멈추고 큐에 다시 넣는다
- OS는 쓰레드 B를 꺼내 CPU를 통해 실행한다
- 이러한 과정을 반복한다
CPU core가 2개 이상이면 위 작업을 물리적으로 동시에 실행할 수 있다
'Java > Concurrency' 카테고리의 다른 글
| Java > Concurrency > 6. Memory visibility (0) | 2024.09.13 |
|---|---|
| Java > Concurrency > 3. Thread info (0) | 2024.09.05 |
| Java > Concurrency > 4. Thread methods (0) | 2024.08.30 |
| Java > Concurrency > 5. Daemon thread (0) | 2024.08.29 |
| Java > Concurrency > Context switching (0) | 2024.08.29 |