多线程锁和反射的再次理解
来源:互联网 发布:ubuntu 漏洞提权 编辑:程序博客网 时间:2024/06/05 16:05
锁 只有对象才有锁,一个对象有且只有一把锁。
只能使用对象的锁去同步,且只能同步方法/代码块,而不能同步变量和类;
同步损害并发性,应尽可能缩小同步范围。
注意:同步代码块与同步方法的区别 一个类中要同步多个方法时都使用,为了避免锁的冲突,必然需要使用不同的对象,要使用同步代码块,方法
多个类中使用同一个琐,也必须用同步代码库方法。
分类 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)
0 0
- 多线程锁和反射的再次理解
- Java 反射的再次学习
- 反射的理解和使用
- 再次理解指针和引用
- ON_MESSAGE和ON_NOTITY再次理解
- 再次理解声明和定义
- 再次理解MVC,MVP 和 MVVM 的图示
- 对深拷贝和浅拷贝的再次理解
- 对继承的再次理解
- mybatis的再次深入理解
- java的泛型和反射,多线程
- 委托和多线程的理解
- java 反射的理解和使用
- java反射和动态代理的理解
- 多线程和反射
- run loop 再次理解和总结
- 反射、注解和线程、Thread、同步锁问题和基于多线程的Server通信(8.4)
- 行-4-understand的再次学习理解
- 【Java】CGlib动态代理
- 模仿playnext网站hover后抖动的效果
- 拼图小游戏"ST--拼图“开发篇之主要功能实现(一)
- php实战之使用curl抓取网站数据
- u-boot 分析(转自360doc)
- 多线程锁和反射的再次理解
- iOS关于RunLoop和Timer
- VS项目属性的配置总结
- jQuery源码分析之ajaxPrefilters方法
- hot and cold observable
- jquery表单验证
- jquery获取节点实现隐藏和显示
- Java 自定义注解例子
- 用户名验证