一:块结构并发
同步与锁
synchronized既可以用在代码上也可以用在方法上,它表明在执行整个代码块或方法之前线程必须取得合适的锁。对于方法,取得对象实例锁(静态方法是类锁),对于代码块,指明要取得那个对象的锁
熟悉同步的知识
1:只能锁定对象,不能锁定原始类型
2:被锁定的对象数组中的单个对象不会被锁定
3:同步方法可以视同为包含整个方法的同步(this){}代码块
4:静态同步方法会锁定它的Class对象,因为没有实例对象可以锁定
5:如果要锁定一个类对象,用显示锁定,还是用getClass()两个方式对子类的影响不同
6:内部类的同步是独立于外部类的
7:synchronized并不是方法签名的组成部分,所以不能出现在接口的方法声明中
8:非同步的方法不查看或关心任何锁的状态,而且在同步方法运行时它们仍能继续运行
二、完全同步对象
1:所有域在任何构造方法中的初始化都能达到一致的状态
2:全部private域
3:所有方法都是同步的
4:当处于非一致状态时,不会调用其它实例的方法
5:当处于非一致状态时,不会调用非私有的方法。
三、volatile
可以对象域同步,效率比较快
四、内存泄露和内存溢出
1: 内存泄露 程序申请内存后,无法释放以申请的内存空间
2: 内存溢出 程序申请内存时,没有足够的内存空间供提时间。

被折叠的 条评论
为什么被折叠?



