자바 동기화 처리 - 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
- 자바 전문서버
- client socket util
- 자바소켓
- 소켓통신 프레임워크
- 자바 전문통신
- 자바 동기화
- java socket util
- 자바 클라이어트 소켓
- 사천성 알고리즘
- 디자인 패턴
- 클라이언트 소켓 유틸
- 자바 사천성
- RedisAutoConfiguration
- 자바 tcp
- 자바 소켓통신
- 추상 팩토리 패턴
- socket readtimeout
- 구성
- 클라이언트 소켓
- java socket
- 사천성 게임
- 소켓 유틸
- 상속과 구성
- 소켓통신
- 바이트 기반 서버
- netty
- neso
- 자바 TCP 서버
- socket connection timeout
- 자바 온라인 사천성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함