多线程锁和反射的再次理解
2015-11-01 15:49
295 查看
锁 只有对象才有锁,一个对象有且只有一把锁。
只能使用对象的锁去同步,且只能同步方法/代码块,而不能同步变量和类;
同步损害并发性,应尽可能缩小同步范围。
注意:同步代码块与同步方法的区别 一个类中要同步多个方法时都使用,为了避免锁的冲突,必然需要使用不同的对象,要使用同步代码块,方法
多个类中使用同一个琐,也必须用同步代码库方法。
分类 1代码块锁,2方法锁 同步整个方法的锁 :
(this当前对象锁 , 静态类对象锁其实系统中并不存在什么类锁。当一个同步静态方法被调用时,系统获取的其实就是代表该类的类对象的对象锁)。
在Java多线程编程中,最常见的synchronized关键字实际上是依靠对象锁的机制来实现线程同步的。我们似乎可以听到synchronized在向我们说:“给我一把 锁,我能创造一个规矩”。
死锁 多线程死锁是因为 出现了互斥锁 互斥锁 即当前的动作需要未来作为驱使条件,而未来又是没有实现的,即用一个不存在的条件驱使当前的动作,则必然死锁。
反射 反射就是吧java类中的各种成分映射成相应的java类.
Class类---》类的类- 》
获得对象就是当前类
方法的类----》获得对象个对象即当前方法
成员变量的类-----》
获得对象即是当前成员变量
!!!!!每个自定义的类都是Class类的一个对象。
在一个运行的程序中,会有许多类和接口存在。我们就用Class这个来来表示对这些类和接口的抽象
,而Class类的每个实例则代表运行中的一个类。例如,运行的程序有A、B、C三个类,那么Class类就是对A、B、C三个类的抽象。
所谓抽象,就是提取这些类的一些共同特征,比如说这些类都有类名,都有对应的hashcode,
可以判断类型属于class、interface、enum还是annotation。这些可以封装成Class类的域,
另外可以定义一些方法,比如获取某个方法、获取类型名等等。这样就封装了一个表示类型的类。(type)
只能使用对象的锁去同步,且只能同步方法/代码块,而不能同步变量和类;
同步损害并发性,应尽可能缩小同步范围。
注意:同步代码块与同步方法的区别 一个类中要同步多个方法时都使用,为了避免锁的冲突,必然需要使用不同的对象,要使用同步代码块,方法
多个类中使用同一个琐,也必须用同步代码库方法。
分类 1代码块锁,2方法锁 同步整个方法的锁 :
(this当前对象锁 , 静态类对象锁其实系统中并不存在什么类锁。当一个同步静态方法被调用时,系统获取的其实就是代表该类的类对象的对象锁)。
在Java多线程编程中,最常见的synchronized关键字实际上是依靠对象锁的机制来实现线程同步的。我们似乎可以听到synchronized在向我们说:“给我一把 锁,我能创造一个规矩”。
死锁 多线程死锁是因为 出现了互斥锁 互斥锁 即当前的动作需要未来作为驱使条件,而未来又是没有实现的,即用一个不存在的条件驱使当前的动作,则必然死锁。
反射 反射就是吧java类中的各种成分映射成相应的java类.
Class类---》类的类- 》
获得对象就是当前类
方法的类----》获得对象个对象即当前方法
成员变量的类-----》
获得对象即是当前成员变量
!!!!!每个自定义的类都是Class类的一个对象。
在一个运行的程序中,会有许多类和接口存在。我们就用Class这个来来表示对这些类和接口的抽象
,而Class类的每个实例则代表运行中的一个类。例如,运行的程序有A、B、C三个类,那么Class类就是对A、B、C三个类的抽象。
所谓抽象,就是提取这些类的一些共同特征,比如说这些类都有类名,都有对应的hashcode,
可以判断类型属于class、interface、enum还是annotation。这些可以封装成Class类的域,
另外可以定义一些方法,比如获取某个方法、获取类型名等等。这样就封装了一个表示类型的类。(type)
相关文章推荐
- C#概述
- xcode7的那些坑-“Your binary is not optimized for iPhone 5” (ITMS-90096) when submitting
- JVM基础
- 别人推荐的书
- HDOJ 2803 The MAX(数学规律)
- HANA学院(7)-03 使用SAP HANA Studio中的Explain Plan
- 8.nodejs权威指南--MongoDB
- CentOS设置服务开机启动的两种方法
- 函数闭包
- 初识flex
- 对象编程和模块编程
- rem中的坑
- Azure上Linux VM防DDOS攻击:使用Apache mod_evasive
- javascript模板-ICanHaz.js
- jquery的index用法
- HDU 4442 Physical Examination(关于贪心排序)
- 再谈匹配qq:’2275025′这回事
- P2P system: Chord
- queue的用法
- 对象深复制