1. Collection.forEach
- 객체를 생성하지 않고 forEach 메서드를 호출
- 동시성 문제 : 수정 감지시 ConcurrentModificationException을 던져 "즉시" 멈춤
2. Stream.forEach
- Stream()으로 객체를 생성해야만 forEach를 호출 가능
- 동시성 문제 : 무조건 리스트 끝까지 돌고 예외를 던진다(NullPointerException)
- parallelStream 사용시 순서가 보장되지 않을 수 있다.
결론적으로, Collection.forEach는 락이 걸려있기에 멀티쓰레드에서 더 안전하다. |
'공부 > Java' 카테고리의 다른 글
자바 제네릭(Generic)이란? (0) | 2022.03.18 |
---|---|
DTO와 VO 비교 (0) | 2022.03.17 |
클래스와 인스턴스 (0) | 2022.03.15 |
테스트하기 좋은 메서드 만들기 (인터페이스 분리) (0) | 2022.03.14 |
Optional<T> (0) | 2022.03.13 |
댓글