동기화란 하나의 자원을 여러 쓰레드가 사용하려 할 때에, 한 시점에서 하나의 쓰레드만 사용할 수 있도록 하는 것을 의미한다. 자바에서 동기화를 사용하기 위해서는 'synchronized' 키워드를 사용한다. 동기화 키워드가 붙은 메소드는 하나의 쓰레드밖에 접근할 수 없고, 다른 쓰레드는 접근한 쓰레드가 완전히 종료한 후 접근할 수 있다.
동기화 메소드를 선언하는 방법은 다음과 같습니다.
접근제어자 synchronized 반환형 메소드이름 (인자) {
... ...
}
동기화가 중요한 이유는 쓰레드로 실행되는 자바 객체의 데이터 처리에 중복을 방지할 수 있기 때문이다. 예를 들어, 데이터베이스에 접근하여 데이터베이스를 수정하는 객체가 여러 사람에 의해 작업을 동시에 수행하면 데이터의 오류를 발생할 수 있다. 이럴때 동기화로 메소드를 처리하면 한번에 하나씩 처리되기 때문에 데이터의 오류를 방지할 수 있다.
또한, 웹 어플제작 플랫폼이 J2EE는 톰캣이라는 웹 컨테이너에서 돌고 웹 컨테이너는 자바객체를 쓰레드로 처리하기 때문에 중요한 자료의 접근에 대해서는 동기화를 시켜주어야 한다.
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
메뉴(Menu) 컴포넌트 클래스 (0) | 2010.07.11 |
---|---|
자바 응용 프로그램 제작시 외부라이브러리와 첨부파일 관계 (0) | 2010.07.10 |
java.util.Calendar - 달력 클래스 (0) | 2010.01.25 |
java.text.SimpleDateFormat - 날짜 형태 (0) | 2010.01.04 |
자바의 I/O 스트림 (0) | 2009.12.27 |