Egloos | Log-in


동기화(synchronized)는 이럴때 사용한다.

동기화 코드의 예
public synchronized void sampleMethod(){
//중간 생략
}
private Object obj=new Object();
public void sampleBlock(){
    synchronized(obj){
       //중간생략
    }
}

    * 동기화를 사용 할 때(synchronized는 생성자의 식별자로는 사용 할 수 없다.)

  • 하나의 객체를 여러 스레드에서 동시에 사용 할 경우
  • 스태틱으로 선언한 객체를 여러 스레드에서 동시에 사용 할 경우
  • static 변수에 동기화를 사용할때는 호출한 메소드도 static이어야 하고, 반드시 필요한 곳에만 사용해야한다,(성능문제)

    * 동기화를 위해서 자바에서 제공하는 JDK 5.0 java.util.concurrent 패키지의 중요한 4가지 개념
        

  • Lock: 실행 중인 스레드를 간단한 방법으로 정지시켰다가 실행시키도록 한다. 상호 참조로 인해 발생하는 데드락을 피할 수 있다.
  • Executors: 스레드를 더 효율적으로 관리 할 수 있는 클래스들을 제공한다. 스레드풀도 제공하므로, 필요에 따라 유용하게 사용 할 수 있다.
  • Concurrent 콜렉션: 앞서 콜렉션 클래스들을 제공한다.
  • Atomic 변수: 동기화가 되어 있는 변수를 제공한다. 이 변수를 사용하면 synchronized 식별자를 메소드에 지정할 필요 없이 사용 할 수 있다.

    더 자세한 사항은 다음의 주소를 참조한다.
    http://java.sun.com/docs/books/tutorial/essential/concurrency/highlevel.html


by 행복하자 | 2008/08/22 01:13 | JAVA 향기 | 트랙백 | 덧글(0)

트랙백 주소 : http://hongsgo.egloos.com/tb/2028469
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶