1.线程安全
来源:互联网 发布:英雄传奇刷点卷软件 编辑:程序博客网 时间:2024/06/09 16:35
1.什么是线程安全类
当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的交替执行和调度,并且不需要额外的同步以及在调用方代码不必要做其他的协调,这个类的行为依然是正确的,那么这个类是线程安全的类。
2.如何保证线程安全
1.不要跨线程共享变量
2.共享状态变为不可变的
3.在任何访问共享变量的时候使用同步
3.原子操作
1.原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会换到另一个线程)
2.java.util.concurrent.atomic包下实现了原子操作
3.java中java.util.concurrent.atomic(CAS理论)+volatile(内存可见性)关键字
4.a和b各为原子操作,但是a+b不等于原子操作
5.原子操作可以保证线程安全,volatile关键字保证了内存可见性
注:原子操作+volatile内存可见性达到了锁的效果
4.锁
1.锁保证了内存的可见性
2.锁保证了线程的互斥
3.锁保证了a和b各为原子操作,但是a+b等于原子操作
注:锁保证了原子性和内存可见性
0 0
- 1.线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- 线程安全
- HashMap源码阅读笔记
- 集合框架-Arrays工具类的asList()方法(把数组转成集合)
- Leet Code OJ 8. String to Integer (atoi) [Difficulty: Easy]
- git入门----repo的基本认识
- Java for Web学习笔记(五一):Log(3)代码中使用log4j2
- 1.线程安全
- 图形学基础之画心形和圣诞树
- Android Wear书签
- 信号---信号的产生
- 第22节:Scala集合和高级函数操作
- linux中nginx配置https
- 训练营结业作业
- Linux MySQL常见问题小结 FAQ
- pip初相识