`
lighter
  • 浏览: 499679 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

该用notify 方法还是notifyAll方法

阅读更多
选择notify的话,因为要唤醒的线程比较少,程序处理速度当然比notifyAll高出一些.

但选择notify的时候,若这部分处理得不好,可能会有程序挂掉的危险性。一般来说,选择notifyAll所写出来的程序代码会比选择notify可靠。

除非你能确定程序员对程序代码的意义和能力限度一清二楚,否则选择notifyAll应该更稳妥一些。

参考:Java多线程设计模式 P34
分享到:
评论
1 楼 wangyazhen 2009-01-12  
http://www.cjsdn.net/post/view?bid=1&id=191909
sun公司是这样说的“The choice is arbitrary and occurs at the discretion of the implementation.”

相关推荐

    Java 同步方式 wait和notify/notifyall

    在Java中,`wait()`, `notify()`, 和 `notifyAll()` 是Java Object类的三个方法,它们在实现线程间通信和协作时扮演着关键角色。这些方法主要用于解决线程等待和唤醒的问题,是基于Java Monitor(监视器)模型的。 ...

    Java 中Object的wait() notify() notifyAll()方法使用

    Java 中Object的wait() notify() notifyAll()方法使用 在Java并发编程中,Object的wait()、notify()和...wait()、notify()和notifyAll()方法是Java并发编程中非常重要的概念,理解它们的使用方法和价值是非常重要的。

    Java多线程同步(wait()notify()notifyAll())[文].pdf

    本文将深入探讨Java中的wait()、notify()和notifyAll()方法,以及synchronized关键字和原子操作在多线程环境中的应用。 1. **wait()方法**: - wait()是Object类的一个方法,它的作用是让当前线程暂停执行并释放它...

    wait()、notify()和notifyAll()方法1---马克-to-win java视频

    wait()、notify()和notifyAll()方法1---马克-to-win java视频

    wait()、notify()和notifyAll()方法2---马克-to-win java视频

    wait()、notify()和notifyAll()方法2---马克-to-win java视频

    如何在Java中正确使用 wait, notify 和 notifyAll

     在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。。举个例子,如果你的Java程序中有两个线程——即生产者和消费者,那么生产者可以通知消费者,让消费者开始消耗数据,因为队列缓冲区中有内容待...

    Java notify和notifyAll的区别和相同

    `notify`和`notifyAll`方法是用来唤醒在该对象上等待的线程。但是,唤醒并不意味着这些线程立刻就能执行,它们还需要重新竞争锁。以下是这两个方法的主要区别: 1. `notify`:只会随机唤醒一个在该对象上等待的线程...

    Java多线程中wait、notify、notifyAll使用详解

    例如,在生产者-消费者模型中,生产者线程可以使用wait()方法等待消费者线程的唤醒,而消费者线程可以使用notify()或notifyAll()方法唤醒生产者线程。 wait、notify、notifyAll方法是Java多线程编程中非常重要的...

    wait和notifyAll方法的使用示例

    ### 使用wait和notifyAll方法详解 #### 一、引言 在Java多线程编程中,`wait()` 和 `notifyAll()` 方法是非常重要的同步机制,主要用于实现线程间的通信与同步控制。通过合理运用这些方法,可以有效地解决生产者...

    基于Java多线程notify与notifyall的区别分析

    因此,明智的做法是根据具体需求来选择使用`notify()`还是`notifyAll()`。 以下是一个可能导致死锁的例子: ```java public class DeadlockExample { private final Object lockA = new Object(); private final...

    【并发编程】 — 线程间的通信wait、notify、notifyAll

    文章目录1 wait、notify、notifyAll简单介绍1.1 使用方法 + 为什么不是Thread类的方法1.2 什么时候加锁、什么时候释放锁?1.3 notify、notifyAll的区别2 两个比较经典的使用案例2.1 案例1 — ABCABC。。。三个线程...

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

    wait方法是Object类的一个方法,用于让当前线程进入等待状态,直到其他线程调用notify或notifyAll方法来唤醒它。在wait方法中,当前线程会释放它所占有的锁,并进入等待状态。wait方法可以带有参数,指定等待的时间...

    源码—Java多线程5—死锁和wait notify notifyAll

    源码—Java多线程5—死锁和wait notify notifyAll

    java notify和notifyAll的对比

    Java中的`notify`和`notifyAll`方法是多线程编程中的重要概念,它们都是`Object`类的方法,用于在同步控制中唤醒等待在特定对象监视器上的线程。理解这两个方法的区别对于编写高效的并发代码至关重要。 首先,`...

    java多线程之wait(),notify(),notifyAll()

    当前线程拥有此对象监视器,该线程发布对此监视器的所有权并等待,直到其他线程通过调用notify方法或notifyAll方法通知在此对象的监视器上等待的线程醒来。然后,该线程将等到重新获得对监视器的所有权后才能继续...

    java中几个notify、wait使用实例

    在实际开发中,应根据具体的应用场景选择合适的方法,例如在需要唤醒所有等待线程时使用`notifyAll()`,而在只需要唤醒一个线程时使用`notify()`。此外,`wait()`方法的使用总是伴随着`synchronized`块或方法,确保...

    Java多线程基础 线程的等待与唤醒(wait、notify、notifyAll)

    在本节中,我们将详细介绍wait()、notify()和notifyAll()方法的使用和实现原理。 wait()方法 wait()方法是一个对象的方法,用于使当前线程等待该对象的锁定,以便其他线程可以获取该锁定并继续执行。当一个线程...

    Java的wait(), notify()和notifyAll()使用心得

    线程将暂停执行,直到其他线程调用相同对象的`notify()`或`notifyAll()`方法,或者被中断或者超时才会唤醒。 2. **notify()**:唤醒在该对象监视器上等待的一个线程。如果有多个线程等待,会选择其中一个随机唤醒。...

    wait_notify_demo

    1. `wait()`: 当一个线程调用某个对象的`wait()`方法时,它会释放该对象的锁,并进入等待状态,直到其他线程调用了该对象的`notify()`或`notifyAll()`方法唤醒它。等待的线程不会自动恢复执行,而是需要重新竞争对象...

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

    1. **wait()**:当一个线程调用对象的`wait()`方法时,它会释放当前对象的锁,并进入等待池,直到其他线程调用同一对象的`notify()`或`notifyAll()`方法唤醒它。唤醒后,线程不会立即恢复执行,而是需要重新获取对象...

Global site tag (gtag.js) - Google Analytics