文件名称:Java高并发编程详解.md
文件大小:40KB
文件格式:MD
更新时间:2022-12-01 14:57:58
Java 高并发
有关java高并发知识总结:三种线程创建方式 深入理解Thread构造函数 Thread API #### CAS缺陷 ##### 循环时间长开销大,自旋CAS如果长时间不成功,会给CPU带来非常大的执行开销。 ##### 只能保证一个共享变量的原子操作 解决方案:1.用锁 2.把多个共享变量合并成一个共享变量来操作。 ##### ABA问题 如果内存地址V初次读取的值为A,在准备赋值的时候检查他的值是否仍然是A,**但是不能确定它的值没有被其他的线程改变过**。这段时间期间它的值被改为B,又被改为A,但是CAS会误认为它没有改变过,这个漏洞称为ABA问题。 ```AtomicStampedReference```来解决ABA问题,类中的```compareAndSet```方法作用首先检查当前引用是否等于预期引用,并且当前标志是否等于预期标志,如果相等,以原子方式将该引用和标记的值设置为给定的更新值。