CHAP 05. 리소스를 사용한 작업
Functional Programming in Java 8의 Chapter 5을 요약한 내용 입니다.
리소스 클린업
문제 들여다보기
public class FileWriterExample {
private final FileWriter writer;
public FileWriterExample(final String fileName) throws IOException {
writer = new FileWriter(fileName);
}
public void writeStuff(final String message) throws IOException {
writer.write(message);
}
public void finalize() throws IOException {
writer.close();
}
//...
public void close() throws IOException {
writer.close();
}
}이제 main() 메서드를 살펴보자
ARM 사용하기
AutoCloseable에 대한 규칙은 자바8에서 몇 가지 변화가 있다.
리소스를 클린업하기 위해 람다 표현식 사용하기
리소스 클린업을 위한 클래스 준비
고차 함수 사용하기
execute around method 패턴
UseInstance 인터페이스
인스턴스 클린업을 위한 설계의 사용
잠금(lock) 관리
synchronized는 약간의 단점도 갖고 있다.
이 문제들을 해결하기 위해 ReentrantLock과 같은 몇 개의 구현이 자바5에서 소개되었다.
Lock 인터페이스에는 한가지 문제가 있다.
람다 표현식을 사용하여 잠금을 관리하는 클래스를 만들어보자
간결한 예외 테스트의 생성
예외 테스트를 위한 람다 표현식의 사용
정리
Last updated