티스토리 뷰

// 여러개의 쓰레드가 한꺼번에 동작할 때... 발생하는 문제의 해결....
// 하나의 데이터 처리에 대해 쓰레드가 설정되어 있다면, 그 데이터를 관리하는 메소드는 동기화 할것..
// 하나의 메소드 내에서는 지역적으로 동기화...

class K extends Thread{
 
 private int x = 100;
 
 public void setX(int x){
  this.x +=x;
 }
 
 public int getX(){
  return x;
 }
 
 public synchronized void run(){ // 한사람이 이 메소드를 호출하면 다른이가 호출하지 못하도록 Lock(메소드 전체의 동기화)
  setX(200);
  System.out.println("x = " + getX());
  
 }
 
 
/*
  public synchronized void run(){ 
  
  synchronized (this) {  // 메소드 내의 일부분만 지역적으로만 동기화.
   setX(200);
   System.out.println("x = " + getX());
  }
  
 }
 */
}


public class _3_2 {
 public static void main(String[] args) {
  K kp = new K();
  kp.start();
  }
}

'dev > java' 카테고리의 다른 글

[15] 예외처리 : try - catch - finally  (0) 2008.09.29
[15] 예외 발생 시키기  (0) 2008.09.29
[15] Thread 이용해서 시간출력.. ㅎㅎ  (0) 2008.09.29
[15] Thread 관련 이것저것  (0) 2008.09.27
[15] Thread 만들기 기본..  (0) 2008.09.27
공지사항