`
Tristan_S
  • 浏览: 373100 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

wait notify sleep synchronized

    博客分类:
  • bf
 
阅读更多
wait和sleep都可以用来停止一段时间
区别是wait是基于某个对象的,并且可以被notify

wait和notify都需要被synchronized 保护起来,否则编译时不会报错,但是运行时会报错。


wait notify
可以用于分布式的的响应, 如果数量没到就一直轮询并wait几秒钟, 等都处理完了,就继续下去。 同时可以用notify来通知, 就不需要等待几秒钟的时间了。



分享到:
评论

相关推荐

    深入理解Wait、Notify和Wait与sleep区别

    本文将深入探讨`wait()`, `notify()`以及它们与`sleep()`方法的区别,这些都是Java中与线程同步密切相关的概念。 首先,`wait()`, `notify()`和`notifyAll()`是Object类中的方法,它们主要用于线程间通信和协作。...

    java之wait,notify的用法([ 详解+实例 ])

    Java之wait和notify的用法详解 在Java多线程编程中,wait和notify是两个非常重要的方法,它们都是Object类的方法,用于线程之间的通信和同步。下面我们将详细解释wait和notify的用法。 wait方法 wait方法是Object...

    Java多线程wait和notify

    在实际应用中,我们通常使用 `synchronized` 关键字来确保对共享资源的访问是互斥的,同时保证 `wait()` 和 `notify()` 操作的正确性。下面是一个简单的例子,展示了如何通过 `wait()` 和 `notify()` 控制子线程的...

    一个理解wait()与notify()的例子

    ### 一个理解wait()与notify()的例子 #### 知识点概述 本文旨在解析一个具体的Java多线程示例代码,以帮助读者更好地理解`wait()`与`notify()`方法的作用及其实现机制。这两个方法是Java中实现线程间通信的重要...

    详解Java中wait和sleep的区别

    对于wait()方法,我们可以通过调用notify()或notifyAll()方法来唤醒线程,而对于sleep()方法,线程会在指定的时间间隔后自动唤醒。 wait()和sleep()方法都是Java多线程编程中重要的概念,它们之间的...

    sleep() 方法和wait()方法的区别.docx

    wait() 方法可以通过 notify 或者 notifyAll 或者指定睡眠时间来唤醒当前等待池中的线程。 sleep() 和 wait() 方法的区别 sleep() 和 wait() 方法的最大区别是: 1. sleep() 睡眠时,保持对象锁,仍然占有该锁; ...

    Object类wait及notify方法原理实例解析

    Object类wait及notify方法原理实例解析 Object类中的wait和notify方法是Java多线程编程中最重要的同步机制之一,它们是Java.lang.Object类中的两个方法,用于在多线程之间进行通信和同步。wait方法将当前线程置于...

    C#中sleep和wait的区别分析

    值得注意的是,`Sleep` 不会释放任何锁,这意味着如果在一个同步上下文中(如 synchronized 或 Monitor 代码块)调用 `Sleep`,其他等待同一锁的线程仍然会被阻塞,无法获取锁并继续执行。此外,`Sleep` 时间结束后...

    Java线程中wait,await,sleep,yield,join用法总结.pdf

    public class ThreadWaitNotify { public static void main(String[] args) throws InterruptedException { DemoTest demoTest = new DemoTest(); // 使用线程池异步执行waitTest方法 ExecutorService ...

    sleep()、wait()、yield()和join()方法特点及区别.docx

    3. **调用位置**:`wait()`, `notify()`和`notifyAll()`必须在同步环境中(同步方法或同步代码块)调用,而`sleep()`可以在任何地方调用。 4. **异常处理**:`sleep()`方法需要捕获`InterruptedException`,而`wait...

    java sleep和wait的解惑.docx

    ### Java中的sleep与wait详解 #### 一、概述 在Java多线程编程中,`Thread.sleep()` 和 `Object.wait()` 是两个非常重要的方法,它们分别位于 `Thread` 类和 `Object` 类中,用于控制线程的行为。本文将深入探讨这...

    详解Java中的sleep()和wait()的区别

    在Java编程语言中,`sleep()` 和 `wait()` 都是用来控制线程执行的重要方法,但它们的作用和使用场景有着显著的区别。以下是这两个方法的详细解释: 1. **`Thread.sleep(long milliseconds)`** - `sleep()` 方法是...

    wait()编程wait()编程wait()编程wait()编程

    - 必须在同步代码块(synchronized block)或者同步方法中调用`wait()`,否则会抛出`IllegalMonitorStateException`。因为只有持有锁的线程才能调用`wait()`,否则会破坏线程同步的规则。 - 调用`wait()`后,线程...

    java中yieldsleep以及wait的区别.pdf

    `wait()`、`notify()`和`notifyAll()`必须在`synchronized`块或方法中调用,否则会抛出`IllegalMonitorStateException`异常。这些方法是Java中实现线程间通信的关键,允许线程在满足特定条件时释放资源并等待,然后...

    线程中sleep、join、yield、wait的区别

    当一个线程调用对象的 `wait()` 方法时,它会释放对象的锁并进入等待状态,直到其他线程调用 `notify()` 或 `notifyAll()` 来唤醒它。这个方法通常与 `synchronized` 关键字一起使用,以确保线程安全地访问共享资源...

    JVM线程状态和Thread.sleep的实现原理探究.pdf

    此外,Java中的wait/notify机制也与线程状态有关。当线程调用某个对象的wait方法时,它会从RUNNABLE状态变为OBJECT_WAIT状态,并释放掉该对象上的锁。此时线程等待在ObjectMonitor上,直到其他线程调用了同一个对象...

    java 中sleep() 和 wait() 的对比

    在Java编程中,`sleep()` 和...在实际应用中,`sleep()` 常用来做简单的定时或者避免过快的循环,而 `wait()` 和 `notify()`(或 `notifyAll()`) 通常用于实现更复杂的同步机制,如生产者-消费者模型或哲学家就餐问题。

    线程编程方面若标志指出线程应该挂起,便用wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

    同步的方式包括`synchronized`关键字、`wait()`、`notify()`和`notifyAll()`,以及`java.util.concurrent.locks.Lock`接口的实现,如`ReentrantLock`。`Lock`提供了比`synchronized`更细粒度的锁控制,可以手动获取...

    这就是标题—— JUC.pdf

    wait / sleep 并发 / 并行 Lock 使用Lock锁 可重入锁 公平锁 / 非公平锁 Synchronized / Lock 线程通讯 wait()、notify()和notifyAll() 虚假唤醒 Condition 定制化通信 多线程锁 并发下的集合类 List Set Map ...

    synchronized.pdf

    `synchronized`关键字还与`wait()`, `notify()`和`notifyAll()`方法配合使用,用于线程间的通信和同步。这些方法必须在`synchronized`代码块或方法中调用,否则会抛出`IllegalMonitorStateException`。 8. **...

Global site tag (gtag.js) - Google Analytics