大家好,我是锋哥。今天分享关于【java多线程sleep() 和 wait() 有什么区别?】面试题。希望对大家有帮助;
java多线程sleep() 和 wait() 有什么区别?
在Java中,sleep()
和 wait()
都是多线程编程中常用的控制线程执行的方法。它们看似有相似之处,但实际上在应用场景和行为机制上有很多不同之处。本文将详细阐述这两者的区别,并帮助大家更好地理解如何在多线程编程中正确使用它们。
1. sleep()
方法
sleep()
是 Thread
类中的一个静态方法,用于让当前线程暂停执行一段时间。调用 sleep()
方法的线程会进入“休眠”状态,暂停执行直到指定的时间过去。sleep()
方法不会释放锁,它只是让线程在指定的时间内停止运行。
语法:
Thread.sleep(long millis) throws InterruptedException
Thread.sleep(long millis, int nanos) throws InterruptedException
millis
:睡眠的毫秒数nanos
:额外的纳秒数(适用于更精确的时间控制)
特点:
- 不释放锁:调用
sleep()
后,当前线程依然持有它在执行之