JAVAEE初阶 多线程基础(六)

wait,notify,饿汉模式

    • 一.wait,notify方法使用
      • 1.1 例子
    • 二.wait和sleep区别
    • 三.单例模式中的饿汉模式

一.wait,notify方法使用

引入wait和notify为了能够从应用层面上,干预到多个不同线程代码的执行顺序,不是影响系统的线程调度策略.
相当于是在应用程序代码中,让后执行的线程,主动放弃被调度的机会,就可以让先执行的线程,先把对应的代码执行完

1.1 例子

在这里插入图片描述

第一个人进去之后,发现ATM机器里面没有钱,会先出来,等有的时候再取,其他人就会竞争这把锁,但是刚刚出来的那个人,也会重新进入到锁竞争中.
但是有一种可能,就是1号进去之后出来,出来再进去,就会一直拿到锁释放锁,进入循环,就造成了***“线程饿死”***

在这里插入图片描述

注意:这里的1号是不用被唤醒,直接参与锁竞争即可.

wait在内部的三个工作
1.释放锁
2.进入阻塞等待
3.其他线程调用notify方法,解除阻塞,重新获取到锁

注意事项:
wait和notify必须放到synchronized里面使用
并且必须是同一个锁对象
如果wait是一个对象,notify唤醒的是另一个对象,那么notify唤醒的是哪个对象,那么就是那个对象.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.wait和sleep区别

在这里插入图片描述
在这里插入图片描述

三.单例模式中的饿汉模式

只允许创建一个实例的模式,不允许其他再new对象.

在这里插入图片描述

在上述代码中,实现了只实例化一个对象的模式
并且提供了私有的构造方法,防止其他再强行实例化对象
如果再实例化对象,就会在编译时期报错.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付宝沙箱支付

1. 二维码 1.1 什么是二维码: ​ 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。 ​ 二维条码/二维码&…

leetcode LCR 083. 全排列

Problem: LCR 083. 全排列 思路 使用一个visited数组来记录每一轮递归中数字被使用情况,dfs Code /*** param {number[]} nums* return {number[][]}*/ var permute function(nums) {const len nums.lengthconst cur [] // 当前轮次的排列结果const res [] /…

【2023.12.4练习】数据库知识点复习测试

概论 数据表:用于存储现实中数据的联系。 储存信息联系。 字段:又称列,如姓名、年龄、编号等。 记录:又称元组,为数据表中的一行,代表了一个实体的信息。 数据库(DB)&#xff1…

HNU-电路与电子学-2017期末B卷(不含解析)

【写在前面】 电路与电子学好像是从2020级开设的课程,故实际上目前只有2020与2021两个年级考过期末考试。 这门课程主要由所谓的“数电”与“模电”组成。而且先学的“模电”后学的“”数电,故期中考试主要以“模电”为主,期末考试主要以“…

C语言变长参数及其陷阱

C语言变长参数及其陷阱 C 工具 变长参数列表 这部分解释了旧的 C 风格变长参数列表。了解这些内容很重要,因为你可能会在遗留代码中遇到它们。然而,在新代码中,你应该使用变参模板来实现类型安全的变长参数列表。 考虑 C 函数 printf()&a…

04数据平台Flume

Flume 功能 Flume主要作用,就是实时读取服务器本地磁盘数据,将数据写入到 HDFS。 Flume是 Cloudera提供的高可用,高可靠性,分布式的海量日志采集、聚合和传输的系统工具。 Flume 架构 Flume组成架构如下图所示: A…

watch的 防抖 防止多次调用请求

watch监听数据变化时,如果数据变化频繁,就会导致watch函数被多次调用,从而发生多次请求的情况。解决这个问题的方法是使用防抖或节流函数来限制函数的调用频率。下面是一个使用lodash库中的防抖函数解决watch多次请求问题的例子: …

常见数据文件存储和读取

当我们使用 Python 读取数据文件时,首先推荐的就是通过 Pandas 完成,Pandas 几乎支持所有常见的数据文件格式。 数据类型文件格式读取方式存储方式文本CSVread_csvto_csv文本JSONread_jsonto_json文本HTMLread_htmlto_html文本剪切板read_clipboardto_c…

ios上传图片旋转问题解决方案(vant上传图片)

使用 van-uploader(vant 组件库上传图片组件)上传图片时, 部分 ios 机型,会偶发从手机上传图片后,图片预览中,图片旋转了 90 度的问题。 对于该问题,vant 官网中也给出了解决方案。 但官网中的方案适配的是单选情况下…

编译原理:NFA转DFA(原理+完整代码+可视化实现)

NFA转换为DFA 【本文内容摘要】 什么是DFA通过子集构造法将NFA转换为DFA生成DFA的dot文件并且形成可视化。 如果本文对各位看官有用的话,请记得给一个免费的赞哦(收藏也不错)! 文章目录 NFA转换为DFA一、什么是DFA二、NFA转换为…

【GO】protobuf在golang中的测试用例

上篇文章介绍了如何安装protobuf环境,文章链接如下 【Go】protobuf介绍及安装-CSDN博客 本节介绍protobuf在gRPC中具体如何使用,并编写测试用例 一、Protobuf是如何工作的 .proto文件是protobuf一个重要的文件,它定义了需要序列化数据的结…

企业微信配置可信域名

首先去申请一个域名,然后将域名绑定到有公网ip的云服务器上,绑定到具体的网站;然后再企业微信,管理后台,点击具体的应用,进【网页授权及JS-SDK】;点击底部的【申请校验域名】点击下载文件&#…

postgresql pg_hba.conf 配置详解

配置文件之pg_hba.conf介绍 该文件用于控制访问安全性,管理客户端对于PostgreSQL服务器的访问权限,内容包括:允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模…

第73讲:深入理解MySQL数据库InnoDB存储引擎:内存结构、磁盘结构与后台线程全面解析

文章目录 1.InnoDB存储引擎的架构2.InnoDB存储引擎的内存结构2.1.Buffer Pool缓冲池2.2.Change Buffer更改缓冲区2.3.自适应Hash索引2.4.Log Buffer日志缓冲区 3.InnoDB存储引擎的磁盘结构3.1.System Tablespace系统表空间3.2.File-Per-Table Tablespaces每个表都有单独的表空间…

ES6箭头函数和js普通函数的区别整理

普通函数的this指向为:谁调用它this就指向谁,this被不同对象调用是会变的 箭头函数的this指向为:声明该箭头函数时,外层第一个普通函数的this指向谁就固定为谁,不会改变 function foo() {console.log(this)}const ob…

红警For Mac(RAM芯片可玩)

1、文件损坏解决版本! 执行以下命令,(注意:命令2应用路径根据实际情况修改) sudo spctl --master-disable sudo xattr -r -d com.apple.quarantine /Applications/红警2尤里复仇M芯片.app2、新系统14,第一…

Oracle Flashback示例集锦

Flashback Table 本例参考Rewind a Table Using Oracle Flashback Table Flashback Table,Flashback Query和Flashback Drop的示例合集可参见这里 首先获得当前的时间,或当前的SCN,以便后续回退使用 -- 获取SCN法1 select DBMS_FLASHBACK.…

孩子都能学会的FPGA:第二十一课——用线性反馈移位寄存器实现伪随机序列

(原创声明:该文是作者的原创,面向对象是FPGA入门者,后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门,作者不光让大家知其然,还要让大家知其所以然!每个工程作者都搭建了全自动化的仿…

腾讯云轻量应用服务器怎么使用宝塔面板?

腾讯云轻量应用服务器宝塔面板怎么用?轻量应用服务器如何安装宝塔面板?在镜像中选择宝塔Linux面板腾讯云专享版,在轻量服务器防火墙中开启8888端口号,然后远程连接到轻量服务器执行宝塔面板账号密码查询命令,最后登录和…

采集伪原创洗稿,实现文章创作的方法

各位写手小伙伴们,今天要和大家分享一些关于伪原创的方法和经验,希望这些建议能够在你们的写作之旅中派上用场。 首先我们需要明确一下,伪原创并不是鼓励抄袭,而是一种在保留原文核心思想的同时,通过巧妙的方式改写&a…