Java 예약어

- volatile
  • 행위의 타겟에 대한 동기화
  • 멀티쓰레드 환경에서 완전히 공유 하겠다.
  • 하나의 변수를 멀티 쓰레드에서 사용하게 되면 각 쓰레드마다 해당 변수 값을 저장하는 작업 복사본을 하나 씩 가지고 있어서 쓰레드는 원본에서 값을 접근하기 위해 자신의 작업 복사본에 값을 저장하고 어떠한 연산을 거친뒤에 다시 원본 값을 돌려버리는 방식을 취한다. 이때 동기화 이슈가 있음. volatile을 사용하면 쓰레드가 특정 변수를 접근하려는 연산이 발생하면 무조건 다시 주 원본의 값을 가져오게 하는 것이다.
* static vs volatile
  • staitc  : Thread 1 and Thread 2 can make their own local copy of the same object(including static variables) in their respective cache
  • volaile : Thread 1 and Thread 2 can make their own local cache of the Object except the variable which is declared as a volatile.
=_=;; 아..여태 까지 엉터리로 코딩했구나.



- synchronized
  • 행위에 대한 동기화

- transient
  • 객체 직렬화시에 멤버 변수의 전송을 막음
  

댓글

이 블로그의 인기 게시물

Spring Batch - JobParameters Default Value 만들기

Hsqldb Server 재기동 시 오류