第二章 线程安全性
来源:互联网 发布:广告宣传单制作软件 编辑:程序博客网 时间:2024/05/29 13:53
线程安全的定义:当多线程访问某个类的时,这个类始终能表现出正确的行为,那么就称这个类是线程安全的。We know it when we see it
线程安全的发生条件:
1,多线程的环境
2,访问共享(Shared)和可变(Mutable)状态的访问
无状态定义:它既不包含任何域,也不包含对其他类中域的引用,无状态的对象是线程安全的,servlet是无状态的
原子性:
原子性操作,count++,非原子性操作,包含了三个独立的操作:读取count值,将值加1,然后将计算写入count
竞态条件:
在并发编程中,这种由于不恰当的执行时序而出现不正确的结果
注解
在系统开发中我们可以定义类似@ThreadSafe和@NotThreadSafe这种无侵入的注解,这样,对系统维护人员就非常清楚的知道哪个类是线程安全做过处理的,对排查问题有帮助
使用线程安全类:
多线程环境,应该使用线程安全的类,譬如Hashtable,StringBuffer
计数器long 的count++ 可以用java.util.concurrent.atomic包含的一些原子变量类,通过使用AtomicLong来代替long类型计数器,count.incrementAndGet();是原子操作的
集合可以使用线程安全的集合,Map map = Collections.synchronizedMap(new Hashmap());
确保原子性的方法
用线程同步synchronized关键字保证同步,修饰范围 代码块,和方法(放在方法返回值的前面)
0 0
- 第二章 线程安全性
- 《Java并发变成实践》读书笔记---第二章 线程安全性
- 《Java并发编程实战》第二章 线程安全性 读书笔记
- [Java Concurrency in Practice]第二章 线程安全性
- Java并发编程实践---第二章:线程安全性
- java 并发编程第二节 线程安全性
- [Java 并发] Java并发编程实践 思维导图 - 第二章 线程安全性
- 《java并发编程实战》随笔——第二章 线程安全性
- Java并发编程实践笔记 第一部分 基础知识 第二章 线程安全性
- java并发编程实战阅读笔记(第二章)线程安全性
- Java并发编程实战(学习笔记 一 第二章 线程安全性)
- 第2章 线程安全性
- 第2章 线程安全性
- 第2章-线程安全性
- 第2章-线程安全性
- 线程安全性
- 线程安全性
- 线程安全性
- Android性能优化之布局优化
- 图像切换器(ImageSwitcher)和画廊视图(Gallery)功能和用法(图片浏览器)
- poj1469 COURSES(二分图)
- 用margin还是用padding 海玉博客笔记
- (开发笔记)转载:-Dmaven.multiModuleProjectDirectory system propery is not set.eclipse中使用maven插件报错
- 第二章 线程安全性
- ORA-21561: OID generation failed
- 发布Qt应用程序(NSIS使用教程)
- 网易内推笔试合集(二)题解
- H.264 NAL层解析(0x00000001,编码,打包,NALU)
- JavaScript垃圾回收机制
- android中设置圆角控件
- Android 设置TabLayout背景和字体大小
- 几个闭包内存泄漏的优化方案!