![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcmpU9/btsopWGtwxY/SFlc61WWeXJfDqc0goOFqk/img.png)
volatile 하나의 변수를 여러 스레드에서 사용할 때 사용하는 키워드로 변수를 CPU 캐시가 아닌 Main Memory에서 변수의 값을 읽거나 저장하겠다라는 것을 명시하는 것이다. 즉, volatile은 CPU Cache에 저장된 값을 읽는 것 보다는 성능이 안좋지만 컴파일러에게 해당 데이터(변수, 메서드)에 대해 멀티스레드로 접근하고 있음을 알려주어 읽기, 쓰기에 대해서 동기화를 보장하여 예측불허하게 바뀌는 것을 막을 수 있다. synchronized와의 차이는 다음과 같다. synchronized: 행위(메서드 및 블럭)에 대한 동기화 volatile: 행위의 타겟(변수)에 대한 동기화 volatile을 사용하는 이유는 Main Memory의 값을 읽고 저장해 가시성을 보장하기 위한 것이라고 할 ..
Java/Java
2023. 7. 22. 20:34
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Kafka
- TDD
- 트랜잭션
- NeXTSTEP
- 비관적 락
- 구름톤챌린지
- spring webflux
- postgresql
- 람다
- pessimistic lock
- Java
- 자바 네티
- 분산 락
- annotation
- jvm 메모리 구조
- redis session
- sql
- mdcfilter
- 카프카
- 네티 스레딩 모델
- socket
- 넥스트스탭
- transaction
- nginx
- Synchronized
- spring session
- 스프링 네티
- mysql
- nginx configuration
- 구름톤 챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함