자바 동기화 처리 - volatile 와 synchronized
volatile은 멀티 스레드 프로그래밍에 사용되는 키워드입니다. 스레드는 실행되고 있는 CPU메모리 영역에 데이터를 캐싱합니다. 따라서 멀티 코어 프로세서에서 다수의 스레드가 변수 a를 공유하더라도 캐싱된(갱신) 시점에 따라 데이터가 다를 수도 있습니다. 그리고 캐싱된 데이터가 언제 갱신되는지 정확히 알수 없습니다. 멀티코어 환경에서 스레드1, 2가 변수a(counter 성격의 가변 데이터)를 공유하고 있다고 가정해 봅시다. 1번 스레드가 a=2를 할당한 이후에 2번 스레드가 a를 읽더라도 가장 최신값 2가 아닌 이전에 캐싱된 값을 읽어올 수 있습니다. 이런 경우 volatile키워드를 사용하여 CPU메모리 영역에 캐싱된 값이 아니라 항상 최신의 값을 가지도록 메인 메모리 영역에서 값을 참조하도록 할 ..
Java
2020. 11. 25. 17:49
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 추상 팩토리 패턴
- 자바소켓
- java socket
- 자바 사천성
- 클라이언트 소켓
- 자바 전문통신
- 자바 tcp
- 사천성 게임
- netty
- 구성
- 소켓통신 프레임워크
- 자바 TCP 서버
- 상속과 구성
- 자바 전문서버
- 자바 온라인 사천성
- java socket util
- 사천성 알고리즘
- RedisAutoConfiguration
- 자바 클라이어트 소켓
- socket connection timeout
- 디자인 패턴
- client socket util
- 소켓 유틸
- socket readtimeout
- 자바 소켓통신
- 소켓통신
- 클라이언트 소켓 유틸
- 바이트 기반 서버
- 자바 동기화
- neso
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
글 보관함