아이템 86. Serializable을 구현할지는 신중히 결정하라.
이펙티브 자바아이템 86. Serializable을 구현할지는 신중히 결정하라.Serializable 구현의 문제점 Serializable을 구현하면 릴리스한 뒤에는 수정하기 어렵다. 버그와 보안 구멍이 생길 위험이 높아진다. 해당 클래스의 신버전을 릴리스할 때 테스 ...
Read more
아이템 85. 자바 직렬화의 대안을 찾으라.
이펙티브 자바아이템 85. 자바 직렬화의 대안을 찾으라.12345678910111213141516171819202122232425262728293031323334353637package com.github.sejoung.codetest.serialization;impo ...
Read more
아이템 84. 프로그램의 동작을 스레드 스케줄러에 기대하지 말라.
이펙티브 자바아이템 84. 프로그램의 동작을 스레드 스케줄러에 기대하지 말라.정확성이나 성능이 스레드 스케줄러에 따라 달라지는 프로그램이라면 다른 플랫폼에 이식하기 어렵다. 스레드는 당장 처리해야 할 적업이 없다면 실행돼서는 안된다. 1234567891011121314 ...
Read more
아이템 83. 지연 초기화는 신중히 사용하라.
이펙티브 자바아이템 83. 지연 초기화는 신중히 사용하라.다른 모든 최적화와 마찬가지로 지연 초기화에 대해 해줄 조언은 필요할때까지 하지마라. 대부분의 상황에서 일반적인 초기화가 지연 초기화 보다 낫다. private final FieldType field1 = com ...
Read more
아이템 82. 스레드 안정성 수준을 문서화 하라.
이펙티브 자바아이템 82. 스레드 안정성 수준을 문서화 하라.메서드 선언에 synchronized 한정자를 선언할지는 구현 이슈일뿐 API에 속하진 않는다. 멀티스레드 환경에서도 API를 안전하게 사용하게 하려면 클래스가 지원하는 스레드 안정성 수준을 정확히 명시해야 ...
Read more
아이템 81. wait 와 notify 보다는 동시성 유틸리티를 애용하라.
이펙티브 자바아이템 81. wait 와 notify 보다는 동시성 유틸리티를 애용하라.wait 와 notify는 올바르게 사용하기가 아주 까다로우니 고수준 동시성 유틸리티를 사용하자. 동시성 컬렉션에서 동시성을 무력화하는 건 불가능하며, 외부에서 락을 추가로 사용하면 ...
Read more
아이템 80. 스레드보다는 실행자, 테스크, 스트림을 애용하라.
이펙티브 자바아이템 80. 스레드보다는 실행자, 테스크, 스트림을 애용하라.java.util.concurrent 패키지가 등장 했고 여기에 executor framework라는 것이 포함이 되어 있다.실행자 서비스는 쓰레드 보다 고급 api면서 조금더 다루기 쉽다. 실 ...
Read more
아이템 79. 과도한 동기하는 피하라.
이펙티브 자바아이템 79. 과도한 동기하는 피하라.이전 상황을 동기화를 하지 않았을때 문제가 생기는 상황을 다뤘고 이번에는 과도하게 동기화를 했을때 생기는 문제를 다룰것이다. 응답 불가와 안전 실패를 피하려면 동기화 메서드나 동기화 블록 안에서는 제어를 절대로 클라이언 ...
Read more
아이템 78. 공유중인 가변 데이터는 동기화 해서 사용하라.
이펙티브 자바아이템 78. 공유중인 가변 데이터는 동기화 해서 사용하라.동기화(synchronized)는 배타적 실행뿐 아니라 스레드 사이에 안정적인 통신에도 필요하다. 12345678910111213141516171819202122232425package com.gi ...
Read more
동시성(Concurrency) High Level Concurrency Objects
동시성(Concurrency)High Level Concurrency Objects지금까지이 레슨은 처음부터 Java 플랫폼의 일부인 저수준 API에 중점을 두었습니다.이러한 API는 매우 기본적인 작업에는 적합하지만보다 고급 작업에는 더 높은 수준의 구성 요소가 필요 ...
Read more