카테고리 없음

Thread Synchronized

F.xavier 2014. 4. 19. 08:07

T

Thread가 수행중에 다른 Process에서 그 Thread를 동시에 수행하려고 할 때 이를 하나의 Thread가 수행을 마친다음 수행을 하도록 Sync를 맞추는 것을 Thread Synchronized 라고 한다.

Thread Synchronized의 방법은 두가지가 있는데

  1. Member Synchronized

Thread 내의 Member Function에 Sync를 거는 방법이다.

즉 Type 앞에synchronized 를 붙여서 사용하는 방법인데 해당 Member Function 전체가 Sync가 된다.

class AccountManagement extends Thread{

    private int balance=0;

    public synchronized void deposit(int x) {

        balance += x;

    }

  1. Local Synchronized

    일정 지역만을 지정하여 Sync를 하므로 만일 긴 문장을 수행하는 경우 효율적인 방법이 된다.

    public void run() {

        synchronized(this) { // Local Sync

            while(true) {

                checkBalance();

                try {

                    Thread.sleep(1000);

                }catch (InterruptedException e) {}

            }

        }

    }

 

==è 이를 Member Sync 바꾸면

public synchronized void run() {

    while(true) {

        checkBalance();

        try {

            Thread.sleep(1000);

        }catch (InterruptedException e) {}

    }

}