-
CPU-bound와 I/O-bound 작업의 병렬 처리JAVA 2024. 5. 23. 17:18728x90반응형
CPU - Bound 작업
CPU-Bound 작업은 CPU 연산 능력이 성능에 영향을 주는 작업입니다.
이런 작업은 병렬 처리를 통해 성능을 향상시킬 수 있습니다.
이유는 각 Thread는 독립적으로 CPU 자원을 사용하여 작업을 처리하기 때문입니다.
하지만 실제 CPU 코어 수를 초과하는 Thread 개수를 사용하는 경우 성능에 악영향을 초래할 수 있습니다.
I/O - Bound 작업
I/O-Bound 작업은 입출력 연산 능력이 성능에 영향을 주는 작업입니다.
이런 작업은 디스크 or 네트워크 속도에 의해 결정되기 때문에 Thread 수를 증가해도 성능 향상이 제한적입니다.
또한 각 스레드가 I/O가 작업이 완료될 때까지 대기하는 병목현상이 발생하여 Thread 관리 오버헤드가 발생할 수 있습니다.
성능 향상을 위해 병렬처리를 할거라면 해당 작업이 CPU-Bound인지 먼저 확인해야 합니다.
728x90반응형'JAVA' 카테고리의 다른 글
Java Pattern.matches의 오남용으로 인한 성능 문제와 최적화 방법 (0) 2024.12.23 [스레드 안전성을 위한 선택] synchronized, ReentrantLock, ReentrantReadWriteLock 비교 (0) 2024.09.24 [Test Code] Mockito를 활용한 랜덤 값 포함 함수 유닛 테스트 (0) 2024.05.23 Java Stream이란? feat. 메모리 로드, 병렬 처리, 연산 흐름 (0) 2024.05.23 AOP - java.lang.ClassCastException (0) 2024.02.23