`
evilgod528
  • 浏览: 2938 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

学到多线程这块,个人对wait和notify的理解

阅读更多

 

这两天在学多线程这块,对wait和notify感觉有点模糊,所以发帖求证下,下面的是我看资料后的个人总结,有什么问题的,希望大家指导下,多谢了

 

1、  首先,这三个方法是在Object的类下的,不是在Thread的类中的。所以,这三个方法表示的是java类所具有的本身的行为,不是多线程下的特性。

2、  JVM会给每一个对象都分配唯一的一把锁。这把锁是在对象中的。获得这把锁的前提是需要将该对象锁定。因为,锁同一时间只能被单条线程所持有,所以需要对该对象synchronized标识。

3、  从以上两点可以得出,调用wait其实是将,同步对象的锁从持有线程那收回,并将该线程调度到等待队列。而notify就是将锁定在该同步对象上处于等待队列的某个线程重新调度到就绪队列。而notifyAll则是唤醒等待队列中的所有线程,将这些线程调度到就绪队列,至于,哪个线程能得到该同步对象,这是由CPU根据竞争选择其中的一条线程。

分享到:
评论

相关推荐

    Java多线程wait和notify

    总结来说,Java的 `wait()` 和 `notify()` 提供了一种在多线程环境中控制线程执行的机制。通过合理使用这些方法,我们可以实现线程间的协作,精确控制子线程的运行状态。然而,这种方式虽然灵活,但管理起来相对复杂...

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

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

    wait和notify讲解

    wait和notify讲解

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

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

    Java 同步方式 wait和notify/notifyall

    Java中的同步机制是多线程编程中至关重要的概念,它用于控制多个线程对共享资源的访问,防止数据不一致性和竞态条件的发生。在Java中,`wait()`, `notify()`, 和 `notifyAll()` 是Java Object类的三个方法,它们在...

    浅谈java多线程wait,notify

    在本文中,我们将通过示例代码详细介绍Java多线程wait和notify的使用,帮助读者更好地理解和掌握这两个机制。 wait机制 在Java中,wait机制用于暂停当前线程的执行,并释放当前对象的锁,以便让其他线程获得锁并...

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

    在Java编程语言中,多线程是...总之,理解和熟练掌握`wait()`, `notify()`以及`sleep()`的使用对于编写高效的多线程程序至关重要。在设计并发程序时,应根据需求选择合适的方法,确保线程间的协同工作和程序的正确性。

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

    本文旨在解析一个具体的Java多线程示例代码,以帮助读者更好地理解`wait()`与`notify()`方法的作用及其实现机制。这两个方法是Java中实现线程间通信的重要手段之一,尤其在解决生产者消费者模型、读者写者问题等经典...

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

    总之,Java多线程同步通过wait()、notify()和notifyAll()等方法,配合synchronized关键字,实现了对共享资源的访问控制,保证了程序的正确性。同时,原子操作和volatile关键字提供了更细粒度的线程安全保证。理解并...

    wait_notify_demo

    总结来说,Java的`wait()`、`notify()`和`notifyAll()`方法是实现多线程间协作的关键工具,特别是对于解决生产者消费者问题。理解它们的工作原理和正确使用方式对于编写高效的并发代码至关重要。在上述示例中,我们...

    主线程去控制子线程wait与notify

    在Java多线程编程中,`wait()`和`notify()`是两个非常重要的方法,它们用于线程间的协作和通信。这两个方法是Java语言中的Object类提供的,因此所有的对象都可以使用。在本文中,我们将深入探讨如何使用主线程来控制...

    41.线程间的通信-wait与notify-只唤醒一个线程或所有线程.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    wait,notify等线程知识.pdf

    Java中的多线程协同工作是通过一系列的同步机制来实现的,其中wait、notify和notifyAll是基于对象监视器的同步原语。这些方法在Java的Object类中定义,主要用于线程间的通信和协作,确保资源的安全访问。下面将详细...

    Java的sychronized、wait和notify范例

    `synchronized`关键字、`wait()`和`notify()`方法是Java多线程中用于控制并发访问共享资源的重要工具,它们是Java内存模型(JMM)的一部分,主要用于解决线程间的同步问题。 一、`synchronized`关键字 `...

    Java多线程通讯之wait,notify的区别详解

    Java多线程通讯之wait、notify的区别详解 ...wait、notify和notifyAll方法是Java多线程通讯中非常重要的方法,它们用于控制线程的状态和同步。在多线程编程中,使用这些方法可以保证线程的安全性和高效性。

    42.线程间的通信-wait与notify-wait(long)的使用.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    java中几个notify、wait使用实例

    在Java的多线程编程中,`notify()`与`wait()`是实现线程间通信的重要方法,它们主要用于解决生产者消费者问题、读者写者问题等典型同步问题。这两个方法定义在`Object`类中,因此所有Java对象都可以作为锁来使用。在...

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

    Java多线程中wait、notify、notifyAll使用详解 Java中多线程编程中,wait、notify、notifyAll三个方法是非常重要的,它们都是Object对象的方法,用于线程之间的通信。下面我们将详细介绍这三个方法的使用和作用。 ...

    Java 同步锁 wait notify 学习心得

    标题和描述概述的知识点主要集中在Java的多线程机制中,特别是`wait`和`notify`方法在同步锁中的应用。这些方法对于控制线程之间的交互至关重要,尤其是在资源有限或需要确保数据一致性的情况下。 ### Java同步锁...

Global site tag (gtag.js) - Google Analytics