
java并发编程
文章平均质量分 94
并发编程笔记
邪恶的鱼蛋
愿你走出半生,归来仍是少年
展开
-
Java并发编程 VII - Lock
文章目录什么是Lock即生管程 何生锁并发编程两大核心 - 互斥、同步Lock的优势ReentrantLock怎么用普通加锁支持响应中断的加锁非阻塞的获取锁支持超时的加锁Condition怎么用ReentrantLock实现原理AQS可重入性同步状态stateCLH 队列锁LockSupport非公平锁 - NonfairSynclock()源码解析lock()小结unlock()源码解析unlock()小结公平锁 - FairSync非公平锁什么情况下会被插队?为什么ReentrantLock默认非公平锁原创 2021-08-01 22:54:44 · 261 阅读 · 0 评论 -
Java并发编程 III - 让共享数据只读(final关键字)
文章目录final关键字基本用法修饰类修饰方法修饰变量final变量 与 普通变量 区别final 与 static 区别final关键字作用final修饰变量能够提供性能final修饰的变量是线程安全的(没有共享就没有伤害) final关键字基本用法 修饰类 final修饰的类:类不能被继承;所有成员方法都会被隐式地指定为final方法。 常见的String、Long、Integer等包装类都是final修饰的类。 修饰方法 final修饰的方法:子类无法重写该方法。 修饰变量 final修饰的变量原创 2021-06-02 20:58:08 · 351 阅读 · 0 评论 -
Java并发编程 II - 没有共享就没有伤害(ThreadLoacl)
卡个位置,还没开始写原创 2021-07-03 14:28:39 · 191 阅读 · 0 评论 -
Java并发编程 VI - 线程生命周期与线程间的协作
文章目录线程的生命周期线程生命周期介绍线程生命周期的切换Running -> RunnableRunning -> BlockedBlocked -> RunnableRunning -> Terminatedwait/notify/notifyAll方法解析为什么wait/notify/notifyAll必须配合synchronized使用wait()notify()/notifyAll()sleep/join/yield方法解析sleep()join()yield() 线程的生命原创 2021-06-30 22:13:57 · 261 阅读 · 0 评论 -
Java并发编程 V - 并发的万能钥匙synchronized
文章目录synchronize关键字作用synchronize关键字使用“对象锁”"类锁"自定义“对象锁”synchronize实现原理管程管程的实现锁优化适应性自旋锁锁消除锁粗化锁升级偏向锁轻量级锁有了synchronized为什么还需要volatile? synchronize关键字作用 在并发环境中,保证修饰部分的可见性、原子性、有序性。 synchronize关键字能够修饰方法、代码块。 synchronize关键字使用 public class SyncTest { private in原创 2021-06-29 14:32:11 · 321 阅读 · 0 评论 -
Java并发编程 I - 并发问题的源头
文章目录线程与进程进程(Process)线程(Thread)CPU时间分片并发是什么资源共享是什么并发编程并发问题的源头原子性问题为什么线程操作会被打断原子性问题例子可见性问题CPU的缓存一致性缓存一致性缓存不一致如果保证CPU的缓存一致性可见性问题例子有序性问题有序性问题例子Java内存模型Happens-Before规则1. 顺序性规则2. volatile变量规则3. 传递性规则4. 管程中锁的规则5. 线程start()规则6. 线程join()规则 线程与进程 进程(Process) 是计算机中的原创 2021-06-12 10:52:46 · 1353 阅读 · 1 评论 -
Java并发编程 IV - volatile关键字与Atomic类
文章目录volatile关键字的作用volatile关键字的应用可见性问题的例子有序性问题的例子为什么会出现可见性问题cpu的缓存一致性如果保证cpu的缓存一致性volatile关键字是如何保证可见性、有序性的Java concurrent包中的Atomic类Atomic类怎么支持原子性CAS是什么CAS有什么缺陷只能保证单个共享变量的原子性高并发下,自旋开销大ABA问题 volatile关键字的作用 保证可见性:所有线程都能看到共享内存的最新状态。 当程序执行到volatile变量的读或写时,在其前面的操原创 2021-06-09 19:56:32 · 351 阅读 · 0 评论