오늘의하루

CPU-bound와 I/O-bound 작업의 병렬 처리 본문

JAVA

CPU-bound와 I/O-bound 작업의 병렬 처리

오늘의하루_master 2024. 5. 23. 17:18

CPU - Bound 작업

CPU-Bound 작업은 CPU 연산 능력이 성능에 영향을 주는 작업입니다.

이런 작업은 병렬 처리를 통해 성능을 향상시킬 수 있습니다.

이유는 각 Thread는 독립적으로 CPU 자원을 사용하여 작업을 처리하기 때문입니다.

 

하지만 실제 CPU 코어 수를 초과하는 Thread 개수를 사용하는 경우 성능에 악영향을 초래할 수 있습니다.

I/O - Bound 작업

I/O-Bound 작업은 입출력 연산 능력이 성능에 영향을 주는 작업입니다.

이런 작업은 디스크 or 네트워크 속도에 의해 결정되기 때문에 Thread 수를 증가해도 성능 향상이 제한적입니다.

또한 각 스레드가 I/O가 작업이 완료될 때까지 대기하는 병목현상이 발생하여 Thread 관리 오버헤드가 발생할 수 있습니다.


성능 향상을 위해 병렬처리를 할거라면 해당 작업이 CPU-Bound인지 먼저 확인해야 합니다.

Comments