Java多线程系列—线程通信机制wait notify notifyAll(03)

Java多线程系列—线程通信机制wait notify notifyAll(03)线程通信机制waitnotifynotifyAll本课时我们主要学习wait/notify/notifyAll方法的使用注意事项。我们主要从三个问题入手:为什么wait方法必须在synchronized保护的同步代码中使用?为什么wait/notify/notifyAll被定义在Object类中,而sleep定义在Thread类中?wait/notify和sleep方法的异同?wait必须在synchronized保护的同步代码中使用为什么wai

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

线程通信机制wait notify notifyAll

本课时我们主要学习 wait/notify/notifyAll 方法的使用注意事项。

我们主要从三个问题入手:

  1. 为什么 wait 方法必须在 synchronized 保护的同步代码中使用?
  2. 为什么 wait/notify/notifyAll 被定义在 Object 类中,而 sleep 定义在 Thread 类中?
  3. wait/notify 和 sleep 方法的异同?

wait 必须在 synchronized 保护的同步代码中使用

为什么wait 必须在 synchronized 保护的同步代码中使用,关于这一点我们可以看看wait 的源码注释,奈何有点长,我做一下删减

/** * Causes the current thread to wait until another thread invokes the * {@link java.lang.Object#notify()} method or the * {@link java.lang.Object#notifyAll()} method for this object. * In other words, this method behaves exactly as if it simply * performs the call {@code wait(0)}. * 使得当前线程进行等待,直到有其他线程对这个对象调用了notify或者notifyAll * 换句话说,这个方法的表现和调用wait(0)是一样的 * <p> *
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196025.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JDK 安装与环境变量配置(Win10详细版)

    JDK 安装与环境变量配置(Win10详细版)前言为什么写这篇文章呢,因为我不想再去百度搜别人的文章了,所以自己写一篇以作记录。准备工作JDK8下载地址一个JDK安装程序,这是是1.8版本,因为新的JDK版本都没有什么很大的亮点,如下图所示,安装鼠标双击运行,选择“是”,然后如下图:点击下一步:我在这里并不修改JDK的安装路径,所以无需改动,点击下一步:安装过程中会弹出jre的安装提示框,如下所示:这里无需…

    2022年6月9日
    32
  • STL algorithm算法lower_bound和upper_bound(31)

    STL algorithm算法lower_bound和upper_bound(31)

    2021年12月8日
    48
  • shardbatis实现分表「建议收藏」

    Shardbatis的名称由shard(ing)+mybatis组合得到,是谷歌的一款开源软件。旨在为mybatis实现数据水平切分的功能。数据的水平切分包括多数据库的切分和多表的数据切分,目前sha

    2022年2月16日
    40
  • 费曼学习法

    费曼学习法费曼学习法我的理解:费曼学习法就是把学好的东西用简洁易懂的语言,传授给别人举例:你学完微积分,然后自己去培训班,自己做老师,传授给学生们,并且学生们都能听懂费曼学习法的四个步骤:1.确定目标

    2022年7月29日
    7
  • Android 中屏幕点击事件的实现

    Android 中屏幕点击事件的实现在android下,事件的发生是在监听器下进行,android系统能够响应按键事件和触摸屏事件,事件说明例如以下:onClick(Viewv)一个普通的点击button事件booleanonKey

    2022年7月3日
    19
  • java集合介绍_java代码分析框架

    java集合介绍_java代码分析框架概述HashMap是Map接口下一个线程不安全的,基于哈希表的实现类。由于他解决哈希冲突的方式是分离链表法,也就是拉链法,因此他的数据结构是数组+链表,在JDK8以后,当哈希冲突严重时,H

    2022年8月16日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号