Java并发理论基础—线程安全策略

不可变对象需要满足的条件

1、对象创建以后其状态就不能修改

2、对象所有域都是final类型

3、对象是正确创建的(在对象创建期间,this引用没有逸出)

final关键字:类、方法、变量

修饰类:不能被继承

修饰方法:1、锁定方法不被继承类修改;2、效率

修饰变量:基本数据类型变量、引用数据类型变量

线程封闭

Ad-hoc线程封闭:程序控制实现,最糟糕,忽略

堆栈封闭:局部变量,无并发问题

ThreadLoacl线程封闭:特别好的封闭方法

安全共享对象策略

线程限制:一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改

共享只读:一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问,但是任何线程都不能修改它

线程安全对象:一个线程安全的对象或者容器,在内部通过同步机制来保证线程安全,所以其它线程无需额外的同步就可以通过公共接口随意访问它

被守护对象:被守护对象只能通过获取特定的锁来访问

猜你喜欢

转载自blog.csdn.net/N2H4N2H4/article/details/82886532