WEB개발/JAVA (10) 썸네일형 리스트형 [JAVA] 객체 직렬화 serialization, IOStream 1. 직렬화 serialization직렬화 serialization객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것을 말한다. 반대로 스트림에서 데이터를 읽어 객체로 변환하는 것을 역직렬화(deserialization)라 한다. 역직렬화, deserialize역직렬화는 ObjectInputStream의 readObject()를 이용한다. 다만 한 가지 주의 사항이 있는데 하나 이상의 객체를 직렬화 했을 경우 반드시 같은 순서로 역직렬화 해야 한다는 것이다. package test.serialize;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;impo.. [JAVA] AtomicInteger (thread-safe) AtomicIntegerAtomicInteger란 원자성을 보장하는 Interger를 의미한다. 멀티 쓰레드 환경에서 동기화 문제를 별도의 synchronized 키워드 없이 해결하기 위해서 고안된 방법이다.(일반적으로 동기화 문제는 synchronized, Atomic, volatile 세가지 키워드로 해결한다.) synchronized은 특정 Thread가 해당 블락 전체를 lock 하기 때문에 다른 Thread는 아무작업을 못하고 기다리는 상황이 되어 낭비가 심하다. 그래서 NonBlocking하면서 동기화 문제를 해결하기 위한 방법이 Atomic이다. AtomicInterger 동작의 핵심 원리는 바로 CAS알고리즘(Compare and Swap)에 있다. 현재 쓰레드에 저장된 값과 메인 메모리.. 이전 1 2 다음