─━ IT ━─/자바

Java 실행대기함수 sleep 과 wait 에 대한 구현과 차이점

DKel 2016. 9. 30. 10:08
반응형

Java 에서 함수에 로직이 수행도중 잠시 멈추었다가 실행해야 될 경우가 있다.

프로그램은 스레드로 돌기 때문에 Thread 클래스 함수를 사용한다.

스레드를 대기 시켜주는 함수는 2가지가 있는데 wait(), sleep() 가 있다.

 

Wait() : 동기화된 다중스레드가 같은 오브젝트에 접근하고자 할 때 중지시킨다. .

활성화 할려면 notify(), notifyAll() 실행하면 된다.

 

Sleep() : 동기화된 다중스레드를 시간으로 중지시킨다.

Public static void sleep(long millis) : 파라미터로 천분의 1초를 받는다

 

두가지 내용에 대해 알기 쉽도록 예제를 구현하였다.

아래 예제에서 보는 것과 같이 Object 를 중지하는 것은 wait() 이고

While For 문처럼 반복할 때 시간을 통해 중지시키는 것은 sleep()

주로 사용한다.

 

출처 : http://mainia.tistory.com/720

 

 

 

 

 

wait(), sleep(), notify(), notifyall()을 쓰려면 객체가 동기화가 되어야 한다!

반응형