sleep():
- sleep()은 Thread 클래스에 정의된 메서드
- 이 메서드는 스레드의 실행을 특정 시간 동안 일시적으로 중지시킨다
- sleep()을 호출한 스레드는 CPU를 양보하고, 슬립하는 동안 시스템 리소스를 소비하지 않는다
- 지정된 시간이 경과하면 스레드는 실행을 재개한다
- sleep()은 프로그램에서 지연을 도입하거나 시간 기반 작업을 생성하는 데 유용..!
try {
// 5초 동안 실행 일시 중지
Thread.sleep(5000);
} catch (InterruptedException e) {
// 예외 처리
}
wait():
- wait()은 Object 클래스에 정의된 메서드
- 이 메서드는 스레드가 보유한 객체의 잠금을 일시적으로 해제한다
- wait()을 호출한 스레드는 다른 스레드가 재개하도록 알릴 때까지 대기하거나 특정 시간이 경과할 때까지 대기한다
- 대기하는 동안 스레드는 CPU를 양보하고 중단된 상태로 들어가며, 다른 스레드가 실행될 수 있다
- wait()은 주로 다중 스레드 환경에서 동기화와 스레드 간 통신을 위해 사용된다
synchronized (lockObject) {
try {
// 알림을 받거나 10초 후에 타임아웃될 때까지 대기
lockObject.wait(10000);
} catch (InterruptedException e) {
// 예외 처리
}
}
▶ sleep()은 프로그램에서 지연을 도입하는 데 사용되고, wait()은 다중 스레드 환경에서 동기화와 스레드 간 통신을 위해 사용된다
'의문점 공부하기 > 📌 Java' 카테고리의 다른 글
📌 thread run()과 thread start()의 차이가 뭘까? (0) | 2023.07.28 |
---|---|
📌 notify()와 notifyAll()의 차이는 뭘까?! (1) | 2023.07.25 |
📌 스레드에 여러가지 상태가 있다??? (0) | 2023.07.21 |
📌 runnable과 callable의 차이는 무엇일까?? (3) | 2023.07.20 |
📌 스레드 만드는 방법!!!! (0) | 2023.07.19 |