Java多线程中调用wait 和 sleep 方法有什么不同?【面试题详解】

今天爱分享给大家带来Java多线程中调用wait 和 sleep 方法有什么不同?【面试题详解】,希望能够帮助到大家。

Java程序中wait 和 sleep都会造成某种形式的暂停,它们可以满足不同的需要。wait()方法用于线程间通信,如果等待条件为真且其它线程被唤醒时它会释放锁,而sleep()方法仅仅释放CPU资源或者让当前线程停止执行一段时间,但不会释放锁。需要注意的是,sleep()并不会让线程终止,一旦从休眠中唤醒线程,线程的状态将会被改变为Runnable,并且根据线程调度,它将得到执行。
java.util.Timer是一个工具类,可以用于安排一个线程在未来的某个特定时间执行。Timer类可以用安排一次性任务或者周期任务。
java.util.TimerTask是一个实现了Runnable接口的抽象类,我们需要去继承这个类来创建我们自己的定时任务并使用Timer去安排它的执行。

人已赞赏
Java

volatile 变量和 atomic 变量有什么不同?【面试题详解】

2020-11-6 16:15:12

Java

什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)【面试题详解】

2020-11-6 16:29:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
'); })();