검색결과 리스트
프로그래밍/멀티스레드에 해당되는 글 5건
- 2014.01.02 스레드 문제와 해결 패턴
- 2014.01.02 이벤트방식 스레드 처리.. 어쩌나? + AJAX 비동기 프로그래밍 자바스크립트
- 2014.01.01 스레드 세이프~
- 2014.01.01 Runnable 인터페이스에 대한 에 대한 깊이 있는 고찰?ㅋㅋ
- 2014.01.01 멀티스레드 동기화 관련
http://docs.oracle.com/javase/tutorial/essential/concurrency/newlocks.html
이벤트방식 스레드 처리.. 어쩌나? + AJAX 비동기 프로그래밍 자바스크립트 (0) | 2014.01.02 |
---|---|
스레드 세이프~ (0) | 2014.01.01 |
Runnable 인터페이스에 대한 에 대한 깊이 있는 고찰?ㅋㅋ (0) | 2014.01.01 |
멀티스레드 동기화 관련 (0) | 2014.01.01 |
http://www.okjsp.net/seq/237333
스레드 문제와 해결 패턴 (0) | 2014.01.02 |
---|---|
스레드 세이프~ (0) | 2014.01.01 |
Runnable 인터페이스에 대한 에 대한 깊이 있는 고찰?ㅋㅋ (0) | 2014.01.01 |
멀티스레드 동기화 관련 (0) | 2014.01.01 |
결론:thread safe가 필요할 경우 아래의 패키지를 활용할 것!
멀티쓰레드 환경에서 클래스의 멤버변수를 안전하게 사용하기 위해서 사용하는 방법이 sychronized 블록을 사용하거나, 변수를 volatile로 선언하는 방식이 있습니다. 두 방식의 차이에 대해 알아보았습니다.
Question of the month: Volatile vs. Synchronized re-visited
먼저 각각의 방식에 대한 한 쓰레드에서 처리 방식을 살펴보면 다음과 같습니다.
volatile | synchronized |
Get a global lock on the variable | Get a global lock on the monitor |
Update the one variable from main memory | Update all shared variables that have been accessed from main memory |
Process some statements | |
Write any change of the one variable back to main memory | Write all shared variables that have been changed back to main memory |
Release the lock | Release the lock |
여기에서 알 수 있듯이 volatile이 선언되지 않은 멤버변수는 sychronized 블록이 아닌 곳에서 사용할 경우, 쓰레드가 변수값들을 복사해서 사용하기 때문에 다른 쓰레드에서 값을 변경했을 경우 같은 변수임에도 불구하고 실제와 다른 값을 읽을 수 있다는 것입니다.
Use Synchronized or Volatile when Accessing Shared Variables
각각의 방식의 장단점을 살펴보면 다음과 같습니다.
Technique | Advantages | Disadvantages |
| Private working memory is reconciled with main memory when the lock is obtained and when the lock is released. | Eliminates concurrency. |
| Allows concurrency. | Private working memory is reconciled with main memory on each variable access. |
스레드 문제와 해결 패턴 (0) | 2014.01.02 |
---|---|
이벤트방식 스레드 처리.. 어쩌나? + AJAX 비동기 프로그래밍 자바스크립트 (0) | 2014.01.02 |
Runnable 인터페이스에 대한 에 대한 깊이 있는 고찰?ㅋㅋ (0) | 2014.01.01 |
멀티스레드 동기화 관련 (0) | 2014.01.01 |
스레드 문제와 해결 패턴 (0) | 2014.01.02 |
---|---|
이벤트방식 스레드 처리.. 어쩌나? + AJAX 비동기 프로그래밍 자바스크립트 (0) | 2014.01.02 |
스레드 세이프~ (0) | 2014.01.01 |
멀티스레드 동기화 관련 (0) | 2014.01.01 |
스레드 문제와 해결 패턴 (0) | 2014.01.02 |
---|---|
이벤트방식 스레드 처리.. 어쩌나? + AJAX 비동기 프로그래밍 자바스크립트 (0) | 2014.01.02 |
스레드 세이프~ (0) | 2014.01.01 |
Runnable 인터페이스에 대한 에 대한 깊이 있는 고찰?ㅋㅋ (0) | 2014.01.01 |
RECENT COMMENT