더북(TheBook)

동시에 값을 세고 모으는 안전한 메커니즘이 있다. 2장에서 특정 프로퍼티를 지닌 값들을 모으는 데 스트림을 사용하는 방법을 살펴볼 것이다. 다른 상황에서는 스레드에 안전한 카운터와 컬렉션을 사용하려고 할 것이다. 이 중요한 주제에 관한 더 자세한 정보를 얻으려면 6장을 참고하기 바란다.

<Note>

이너 클래스와 마찬가지로, 람다 표현식에서 자신을 감싸고 있는 지역 유효 범위에 있는 카운터를 업데이트할 수 있게 하는 탈출구가 있다. 다음과 같이 길이가 1인 배열을 사용해보자.

 

int[] counter = new int[1];

button.setOnAction(event -> counter[0]++);

 

물론 이와 같은 코드는 스레드에 안전하지 않다. 버튼 콜백인 경우 문제가 되지 않지만, 일반적으로는 이 트릭을 사용하기 전에 한 번 더 생각해보기 바란다. 6장에서 스레드에 안전한 공유 카운터를 구현하는 방법을 살펴볼 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.