2010. 8. 10. 18:53
Thread - 대기와 통지 JAVA이야기2010. 8. 10. 18:53
notifyAll(은 실제로 모든 쓰레드들이 깨어나게 하는가?
그럴수도 있고 아닐 수 도 있다.
왜 모든 쓰레드들이 깨어나기를 원하는가??
대기중인 모든 쓰레드를 깨어나게 함으로써 , 우리는 그 쓰레드 중에서 어떤 것이 ㄷ음에 수행되게 해야 할 지를 결정할 수 도 있도록 프로그램을 설계할 수 있다.
대기중인 모든 쓰레드를 깨어나게 함으로써 , 우리는 그 쓰레드 중에서 어떤 것이 ㄷ음에 수행되게 해야 할 지를 결정할 수 도 있도록 프로그램을 설계할 수 있다.
다른 이유는 통지가 다수의 대기중인 스레드들을 만족 시킬 수 있는 경우가 있기 떄문이다.
I/O를 다루기 위해서 별도의 쓰레드를 시작시키는 것이 자바에서의 일반적인 스레드의 사용.
쓰레딩자체는 단지 우리 프로그램의 세부 구현일 뿐이라고 할 수 있다. 진정하 쓰레딩이랑 어떤 특정 행위를 하는 다른 객체와 같은 관점에 바라보아야 한다.
Assertion value > 0
value > 0 이면 아무일도 일어나지 않는다. value > 0 이 아니라면 java.lang.AssertionError라는 예외를 throw한다.
AssertionError가 던져지면 프로그래머의 기대에 반한 것이므로 assertion은 오류를 발견할 수 있는 조기 단서가 된다.
'JAVA이야기' 카테고리의 다른 글
한정자(Type Qualifiers) (0) | 2010.10.19 |
---|---|
Volatile 과 restrict (0) | 2010.09.02 |
Java Inner Class (0) | 2010.08.10 |
Thread - 동기화 기법 (0) | 2010.08.09 |
Thread - API (0) | 2010.08.06 |