-
Thread Synchronized카테고리 없음 2014. 4. 19. 08:07
T
Thread가 수행중에 다른 Process에서 그 Thread를 동시에 수행하려고 할 때 이를 하나의 Thread가 수행을 마친다음 수행을 하도록 Sync를 맞추는 것을 Thread Synchronized 라고 한다.
Thread Synchronized의 방법은 두가지가 있는데
- 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;
}
- 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) {}
}
}