Difference between 睡觉 和 等待 在java中

常见的面试问题之一是“之间有什么区别 睡觉 等待 在java中”在我们真正看到差异之前,请先简要介绍一下两者。

睡觉

  • 它使当前正在执行的线程休眠特定时间。
  • 其准确性取决于系统计时器和调度程序。
  • It keeps the monitors it has acquired, so if it is called from 已同步 context, no other thread can enter that block or method.
  • If we call interrupt() method , it will wake up the 睡觉 ing thread.

等待

  • 它导致当前线程等待,直到另一个线程为此对象调用notify()方法或notifyAll()方法
  • It must be called from 已同步 context i.e. from block or method.It means before 等待 () method is called,current thread must have lock on that object.
  • 它在调用它的对象上释放锁定,并将其添加到等待列表中,以便另一个线程可以在该对象上获取锁定。

睡眠与等待:

参数
等待
睡觉
同步化

应该从同步上下文即块或方法中调用wait,如果不使用同步上下文调用它,则会抛出IllegalMonitorStateException

不需要从同步块或方法中调用
呼吁

等待 方法在Object上操作并在Object类中定义

睡觉 method operates on current thread 和 is 在java中.lang.Thread
解除锁定
等待对其调用的对象的释放锁,以及持有该锁的其他锁
睡眠方法根本不释放锁
唤醒条件
直到从Object类调用notify()或notifyAll()
直到时间到期或调用interrupt()
静态的
等待是非静态方法
睡眠是静态方法

你可以经历 爪哇 核心面试题 对于初学者和有更多此类问题的经验丰富的人。


导入联系人

您可能还喜欢:

相关文章

  • 获取Java中的线程ID
    9月30日

    获取Java中的线程ID

    在本文中,我们将学习获取Java中正在运行的线程的线程ID。 Id是在线程创建时生成的唯一正数。该ID在线程的生存期内保持不变。线程终止时,其ID可用于引用另一个线程,但是[…]

  • ArrayBlockingQueue 在java中
    9月19日

    ArrayBlockingQueue 在java中

    在本文中,我们将了解Java并发队列BlockingQueue。然后我们将深入其中’其中之一的实现ArrayBlockingQueue。什么是BlockingQueue 阻塞队列接口是在Java 5中并发API下引入的,它表示一个线程安全的队列,可以在其中添加和删除元素。我们可以有 […]

  • 将Java程序延迟几秒钟
    12月11日

    将Java程序延迟几秒钟

    在这篇文章中,我们将看到如何将Java程序延迟几秒钟。在很多情况下,我们需要等待其他任务完成,因此我们需要延迟Java程序。有多种方法可以延迟Java程序的执行。使用Thread.sleep 睡觉 方法会使当前线程暂停[…]

  • 29 May

    How to 打印偶数和奇数 using threads 在java中

    在本文中,我们将看到如何使用Java中的线程打印偶数和奇数。另请参见:如何在Java中使用3个线程打印序列问题您将获得两个线程。您需要使用一个线程打印奇数,而使用另一线程打印偶数。您需要以自然顺序打印[…]

  •  等待 (),notify()  和  notifyAll() 在java中
    10月22日

    为什么在对象类中使用wait(),notify()和notifyAll()方法

    在这篇文章中,我们将看到为什么wait(),notify()和notifyAll()方法在对象类中而不在线程类中。这是最常问到的Java多线程面试问题之一。您可能知道wait(),notify()和notifyAll()方法在Object类中,您知道相同的原因吗?让’s […]

  • Custom 阻塞队列 在java中
    10月16日

    Custom 阻塞队列 implementation 在java中

    在本文中,我们将看到如何创建自己的自定义BlockingQueue。这是最常被问到的Java面试问题之一。您需要实现自己的BlockingQueue。这个问题有助于面试官对多线程概念有所了解。这是BlockingQueue的简单实现。我们将使用数组将元素存储在[…]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。