今天下课的时候被陈老师抓到玩网页游戏……
那可是下课啊啊啊啊啊啊啊啊啊…… o()︿︶)o 唉 以后不敢喽~
好好学习 天天向上喽
Java线程:线程的交互
一、线程交互的基础知识
线程交互知识点需要从java.lang.Object的类的三个方法来学习:
l void notify() :唤醒在此对象监视器上等待的单个线程。
l void notifyAll():唤醒在此对象监视器上等待的所有线程。
l void wait() :导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或notifyAll() 方法。
notify():
(唤醒)
(在此对象监视器上)
(等待的)
(单个)
(线程)。
当然,wait()还有另外两个重载方法:
void wait(long timeout)
导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。
void wait(long timeout, int nanos)
导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。
以上这些方法是帮助线程传递线程关心的时间状态。
关于等待/通知,要记住的关键点是:必须从同步环境内调用wait()、notify()、notifyAll()方法。线程不能调用对象上等待或通知的方法,除非它拥有那个对象的锁。
wait()、notify()、notifyAll()都是Object的实例方法。与每个对象具有锁一样,每个对象可以有一个线程列表,他们等待来自该信号(通知)。线程通过执行对象上的wait()方法获得这个等待列表。从那时候起,它不再执行任何其他指令,直到调用对象的notify()方法为止。如果多个线程在同一个对象上等待,则将只选择一个线程(不保证以何种顺序)继续执行。如果没有线程等待,则不采取任何特殊操作。
解释:主线程中的b和线程任务中的this是一个东西,属于临界资源,因此二者将需要进行互斥访问,主线程中的同步代码块先于线程run()中的同步代码块运行,因此先获得锁,但是却在随后的代码中调用wait放弃了锁,这样线程任务获得锁并进行累加。线程任务完成累加后调用notify重新唤醒了主线程并且由其打印累加结果。
千万注意:
当在对象上调用wait()方法时,执行该代码的线程立即放弃它在对象上的锁。然而调用notify()时,并不意味着这时线程会放弃其锁。如果线程仍然在完成同步代码,则线程在移出之前不会放弃锁。因此,只要调用notify()并不意味着这时该锁变得可用。
分享到:
相关推荐
OMRON PLC 9.7版本软件 欧姆龙PLC编程软件升级包 CX-Programmer 9.7版本.zip
版本信息: "9.7" 强制策略: "软停止" 许可授权用户数: "25" 功能部件: DB2 数据库分区: "未许可" DB2 性能优化 ESE: "已许可" DB2 存储器优化: "已许可" DB2 高级访问控制: "已许可" DB2 地理数据管理: "已...
DB2 V9.7 license
近期因为测试需要要下载各个版本的安装包,花了很长时间长找到的安装包,分享出来,让大家少走点弯路 自己已在centos7的环境上成功安装,window环境下自行验证 资源清单: ...v9.7fp1_ntx64_server.exe
CentOS7离线升级openssh-9.7p1 将openssh-9.7p1的rpm包上传到本地服务器 进入openssh9.7p1文件夹,里面包含openssh-9.7p1升级的rpm包 查看当前openssh的版本 使用yum localinstall openssh-*.rpm 进行更新 授权,...
编程软件9.7升级包(文件比较大,无法直接上传,下载后有个下载链接。需要到百度网盘下载) 电脑上需要先安装9.7以下的。然后再下载这个。解压后安装, 升级时候,只打钩CX-Programmer ,就是升级这个PLC编程软件 ...
福昕V9.7的工具包,可以辅助福昕9.7工作,模块插件 。
运行脚本就可以升级openssh至9.7 如果报错,先对脚本进行转码:dos2unix openssh/update_ssh.sh 在运行脚本 操作系统: Operating System:Kylin Linux Advanced Server V10 Kernel: Linux 4.19.90-52.22.v2207.ky10...
升级到DB2版本9.7描述每个组件升级过程和概念。
EXE打包加密器,最新版本9.7,虚拟机版本,内有详细安装说明和视频,喜欢的拿走吧,压缩包若有密码 应该是123
v9.5、v9.7、安装说明书、软件升级包CX-Programmer9.7 ,文件比较大,都以云盘链接
可用于centos8和rhel8中openssh的升级,安装前注意备份配置文件。 安装后包含了ssh-copy-id命令,使用ssh -V命令可查看...成功安装后,rhel8.9版本会显示如下信息:OpenSSH_9.7p1, OpenSSL 1.1.1k FIPS 25 Mar 2021
用于DB2 9.7 企业的证书,通过db2licm注册后即可免除过期烦恼!
toad9.7破解器
DB2数据库 V9.7安装手册
the Unscrambler 9.7破解版(附破解方法).rar the_Unscrambler_Method_References.pd
适用于centos 7 redhat 7 系列操作系统的openssh 9.7 p1 rpm包 2024年3月12日制作,安装后会显示without ssl 可用于升级更新openssh版本,修复安全漏洞 2024年3月11日 官方发布9.7版本,此包基于官方源码制作,无...
DB2 v9.7 jar包,开发、部署连接数据使用
[IBM DB2 9.7 高级管理指南] (IBM DB2 9.7)
飓风加密工具9.7正式版 1、抛弃Media player内核,加密后的文件自带播放器与解码器,用户播放加密视频无需再安装任何播放器或解码器,易用性显著提高; 2、支持Windows 7; 3、改进了视频水印功能; 4、美化播放界面,...