圣思园——Java SE Lesson 16
1. 如果某个 synchronized 方法是 static 的,那么当线程访问该方法时,它锁的并不是synchronized 方法所在的对象, 而是 synchronized 方法所在的对象所对应的 Class 对象,因为 Java 中无论一个类有多少个对象 ,这些对象会对应唯一一个 Class 对象,因此当线程分别访问同一个类的两个对象的两个 static , synchronized 方法时,他们的执行顺序也是顺序的,也就是说一个线程先去执行方法,执行完毕后另一个线程才开始执行。
2. synchronized 块,写法:
synchronized(object)
{
}
表示线程在执行的时候会对 object 对象上锁。
3. synchronized 方 法 是 一 种 粗 粒 度 的 并 发 控 制 , 某 一 时 刻 , 只 能 有 一 个 线 程 执 行 该synchronized 方法 ;synchronized 块则是一种细粒度的并发控制,只会将块中的代码同步,位于方法内、 synchronized 块之外的代码是可以被多个线程同时访问到的。
4. 死锁( deadlock )
5. wait 与 notify 方法都是定义在 Object 类中,而且是 final 的,因此会被所有的 Java类所继承并且无法重写。这两个方法要求在调用时线程应该已经获得了对象的锁,因此对这两个方法的调用需要放在 synchronized 方法或块当中。 当线程执行了 wait方法时,它会释放掉对象的锁 。
6. 另一个会导致线程暂停的方法就是 Thread 类的 sleep 方法,它会导致线程睡眠指定的毫秒数, 但线程在睡眠的过程中是不会释放掉对象的锁的 。
圣思园——Java SE Lesson 16相关推荐
- 圣思园——JAVA SE Lesson 1
1. 类是一种 抽象 的概念,对象是类的一种具体表示形式,是 具体 的概念.先有类,然后由类来生成对象( Object).对象又叫做实例( Instance ). 2. 类由两大部分构成:属性以及方法 ...
- 圣思园——Java SE Lesson 2
1. 多态:父类型的引用可以指向子类型的对象. 2. Parent p = new Child(); 当使用多态方式调用方法时,首先检查父类中是否有sing() 方法, 如果没有则编译错误:如果有,再 ...
- 圣思园——Java SE Lesson 6
1. 当向ArrayList添加一个对象时,实际上就是将该对象放置到了 ArrayList 底层所维护的数组当中:当向 LinkedList 中添加一个对象时,实际上 LinkedList 内部会生成 ...
- 圣思园——Java SE Lesson 4
1. 包装类(Wrapper Class).针对于原生数据类型的包装.所有的包装类(8 个)都位于 java.lang 包下.Java 中的 8个包装类分别是:Byte, Short, Integer ...
- 圣思园——Java SE Lesson 5
1. 对于Java中的常量的命名规则:所有单词的字母都是大写,如果有多个单词,那么使用下划线连接即可.比如说:public static final int AGE_0F_PERSON = 20; 2 ...
- 圣思园——Java SE Lesson 11
1. 所谓自定义异常, 通常 就是定义了一个继承自 Exception 类的子类,那么这个类就是 一个自定义异常类.通常情况下,我们都会直接继承自 Exception 类, 一般 不会继承 某个运行时 ...
- 圣思园-----Java SE Lesson 7
1. 有这样一个类: // getter and setter 要求:假如有若干个类 Person 对象存在一个 List 当中,对他们进行排序,分别按照名字.年龄. id 进行排序(要有正序与倒序两 ...
- 北京圣思园_Java SE Lesson 11
Java SE Lesson 11 1. 所谓自定义异常,通常就是定义了一个继承自Exception类的子类,那么这个类就是一个自定义异常类.通常情况下,我们都会直接继承自Exception类,一般 ...
- 圣思园java se培训总结(82-)(观察者设计模式)
世界上没有无缘无故的爱,也没有无缘无故的恨,代码也是一样.为什么点击一个按钮就会出现一个变化!这就是观察者设计模式. 观察者设计模式定义了一种一对多的关系,多个观察者对象监听一个主题对象,当主题对象发 ...
最新文章
- linux boost filesystem程序链接,在Linux中链接Boost库
- CheckBox UITableViewCell
- Era 贪心 Codeforces Round #752 (Div. 2)
- 天涯煮酒又发现一篇好文,王阳明传,序就很漂亮,转一下
- MySQL数据库的权限表
- 选择让孩子练习羽毛球的家长好好看看!
- Oracle 循环相关
- 【转】几种数据库的大数据批量插入
- PostgreSQL最终获得存储过程
- 路由删除命令_清除思科路由器配置信息的两种方法
- Linux Apache Mysql PHP典范设置装备安排-2
- springboot毕业设计管理系统(带论文)
- 如何使用origin画韦恩图?
- 数据可视化看板怎么搭建,这样做小白能看懂
- 基于51单片机GSM模块的家庭防火防盗报警系统
- mysql的group by语句不会产生_MySQL:为什么查询列表中多了它,GROUP BY语句就会报错呢?...
- python中and的用法
- html点击a标签弹层播放视频,html中点击a标签视频在新页面播放
- java路径是什么_什么是java路径?
- 使用Python网络爬虫抓取牛客网题目