상태의 변화가 없는 경우에는 synchronized를 할 필요가 없다. 여기서는 불변의 객체의 역할로 Person이 담당을 하였다.
public final class Person {
private final String name;
private final String address;
public Person (final String name, final String address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
@Override
public String toString() {
return "Person [name=" + name + ", address=" + address + "]";
}
}
public class PrintPersonThread extends Thread {
private Person person;
public PrintPersonThread (final Person person) {
this.person = person;
}
public void run () {
while (true) {
System.out.println(person.toString());
}
}
}
public class Main {
public static void main (final String[] args) {
final Person alice = new Person("Alice","Alaska");
new PrintPersonThread(alice).start();
new PrintPersonThread(alice).start();
new PrintPersonThread(alice).start();
}
}
'Development > Programming' 카테고리의 다른 글
[Java Design Patten] Balking 패턴 (2) | 2014.06.03 |
---|---|
[Java Design Patten] Guarded Suspension (0) | 2014.05.31 |
[Java Design Patten] Single Threaded Execution (0) | 2014.05.20 |
[Java] wait, notify, notifyAll (0) | 2014.05.16 |
[Java] synchronized 사용법 정리 (0) | 2014.05.16 |