The Boxer
Synchronized 본문
728x90
반응형
[Synchronized]
- Java 실행시 두개 이상의 쓰레드가 사용된다고 할때 사용되는 자원에 대해서 제어를 해줘야함
- 예를들어 2개 이상의 쓰레드가 하나의 변수(자원)에 접근한다고 가정할 때, 두 쓰레드가 동시에 변수를 사용하면 결과에 오류가 날 수도 있음
- 따라서 하나의 쓰레드가 자원에 접근하는 경우 다른 쓰레드는 그 자원에 접근하지 못하도록 [동기화] 시켜줘야 함
- 동기화는 자원에 대한 동기화, 메소드에 대한 동기화가 존재함
- 하지만 과도하게 동기화를 할 경우 프로그램의 실행 속도가 줄어든다는 단점이 있음
[변수/객체에 사용하는 예시]
private Object object = new Object(); public void method() { synchronized(object); //코드 실행... }
- 변수에 사용할 경우 쓰레드에 의해 변수가 사용중일 때 다른 쓰레드가 접근하지 못하게 할 수 있다
[메소드에 사용하는 예시]
public synchronized void method() { //코드 실행... }
- 메소드에 사용할 경우 쓰레드가 메소드를 사용중이면 다른 쓰레드가 메소드에 접근하지 못하게 한다
728x90
반응형
'Java' 카테고리의 다른 글
자바 용어정리Spring - Beans와 POJO (0) | 2018.11.23 |
---|---|
Lombok (0) | 2018.10.02 |
Calllback과 Synchronous/Asynchronous (0) | 2018.09.27 |
log4j를 사용한 logging (1) | 2018.07.17 |
Interface를 사용한 Callback 구현 (0) | 2018.07.16 |
Comments