Java精通并发-notify方法详解及线程获取锁的方式分析
wait():
在上一次https://www.cnblogs.com/webor2006/p/11404521.html中对于无参数的wait()方法的javadoc进行了解读,而它是调用了一个参数的重载方法,回忆下:
其中如果传0代表无限等待,否则是等待指定的时间就会停止等待,如参数所示:
这个版本的注释比无参的要详细很多,所以。。继续来解读它,不过它里面有一些上次看到无参wait()的说明,就简单略过了,不重复进行说明,好,下面文档阅读走起:
以上就是为啥我们在学习wait()时在实际代码中会放在一个循环当中的具体原因了,官方真的是说得解释得特别的详细,继续:
以上就是该方法的所有javadoc的解读,确实是相当之权威,读任何一本书都没有直接从官方的javadoc所获得的信息权威,另外wait()方法还有另一个版本的重载:
其中看一下第二个参数纳秒:
其实它也是调用一个参数的wait():
notify()¬ifyAll():
其中我们在读wait()的javadoc时它提示了这个信息:
所以,咱们先来看一下notify()方法的定义:
所以,接下来看一下它的官方解读:
接下来这三点超重要!!
有木有发现。平常我们所学的所有知识都已经在javadoc中详细进行了权威描述,所以读原生文档真的价值非常的高,还剩最后一句:
Java精通并发-notify方法详解及线程获取锁的方式分析的更多相关文章
- Java中的main()方法详解
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...
- 使用Java操作文本文件的方法详解
使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...
- 转:Java中的Clone()方法详解
Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...
- java.lang.Class.getDeclaredMethod()方法详解
Java.lang.Class.getDeclaredMethod()方法用法 注:方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法. 描述 java.lang.C ...
- Java精通并发-Lock与synchronized关键字在底层的区别及实例分析
在上两次中已经将Lock这个接口的整个官方说明进行了阅读,这次来了解一下它的一个非常重要的实现类: 啥叫“可重入”呢?其实是指一个线程已经拿到了锁,然后该线程还能再次获取这把锁,接下来在了解它之前先用 ...
- 运行java的class文件方法详解
一.运行class文件 执行带main方法的class文件,命令行为:java <CLASS文件名>注意:CLASS文件名不要带文件后缀.class 例如: 复制代码代码如下: java ...
- Java equals() 和hashCode()方法详解
Java的Object类中定义了equals方法,Object类中的equals方法源代码如下,从源代码中可以看出Object类中的equals方法是用来返回判断两个对象是否指向同一个对象(引用地址) ...
- java的ArrayList使用方法详解
ArrayList是Java的链表类,在项目开发中十分常见,那么怎样对ArrayList进行添加.删除.修改.查询.遍历呢?本文将进行详细阐述. 工具/原料 java 一.ArrayList的添加 ...
- Java连载39-构造方法详解
一. 1.多行注释:CTRL + shift + / 2.当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器. public class D39 ...
随机推荐
- [LeetCode] 260. Single Number III 单独数 III
Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...
- javascript实现每秒执行一次的方法
javascript实现每秒执行一次的方法 <pre> i=0; function showzhandou() { $('.zhandouresult p').eq(i).fadeIn() ...
- php_mvc实现步骤六
shop34-1-目录布局 存在项目的根目录 shop34 框架代码与应用程序代码划分 框架代码: 在各个应用程序间可以通用的代码. 应用程序代码: 当前项目的业务逻辑实现的代码. 分别创建两个子目录 ...
- c# 用XmlWriter写xml序列化
using System.Text; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using ...
- Django 自定义表名
class UserInfo(AbstractUser): phone = models.BigIntegerField(null=True, blank=True) create_time = mo ...
- mysq 连表更新
update table1 a left join table2 b on a.id = b.user_id left join table3 c on a.id = c.user_idset a.p ...
- robotframework_javaScript定位
整理笔记才发现,只有在rebotframework才用过js定位,那么如果有小伙伴在使用js遇到问题,给我留言吧 通过Id定位 name定位 通过标签名查找 HTML 元素 本例查找 id=&qu ...
- 作业调度框架Quartz.NET-现学现用-02-任务监听
原文:作业调度框架Quartz.NET-现学现用-02-任务监听 前言 任务调度系统并不是完美的,它会出现任务执行失败的情况.如果你需要处理任务失败后的逻辑,希望这篇笔记可以为你提供些帮助. Quar ...
- Highcharts曲线展示数据
- 查看font字体文件
url: http://bluejamesbond.github.io/CharacterMap/ 打开网址后,如下图操作