Java多线程与并发-原理

Aine ·
更新时间:2024-11-14
· 801 次阅读

文章目录synchronized线程安全主要诱因互斥锁特性获取对象锁同对象,异步同对象,同步代码块同对象,非静态同步方法同对象,同步代码块 对比 非静态同步方法不同对象,同步代码块 对比 非静态同步方法获取类锁和对象锁的变动-代码块和静态方法同对象,类锁 对比 对象锁不同对象,类锁 对比 对象锁同对象,类锁 对比 对象锁代码实现SyncDemoSyncThread总结synchronized底层实现原理实现synchronized基础对象在内存中的布局对象头结构Monitor锁的竞争、获取与释放字节码层面分析什么是重入-知识补充同步块-字节码分析同步方法体-字节码分析为什么会对synchronized嗤之以鼻Java6后,在JVM层面做了大量优化自旋锁自适应自旋锁锁消除锁粗化synchronized的四种状态偏向锁轻量级锁加锁过程解锁锁的内存语义-补充知识-解锁轻量级怎么就成功了?偏向锁、轻量级锁、重量级锁 汇总synchronized和ReentrantLockReentrantLock的区别源码ReentrantLock-AQSReentrantLock公平性设置理解公平效果图不公平效果图ReentrantLock将锁对象化其他对象化追源码总结synchronized和ReentrantLock区别区别追源码分析jmm的内存可见性Java内存模型中的happens-beforeJmmJmm主内存Jmm工作内存Jmm和Java比较主内存和工作内存-数据存储类型-操作方式 归纳Jmm如何解决可见性指令重排序的满足条件happens-before原则volatile内存语义-补充知识volatile如何立即可见volatile如何禁止重排优化线程安全的单例实现算法-单例双重检测volatile和synchronize的区别CASCAS线程安全,乐观锁CAS思想场景举例,追源码CAS多数情况下对开发者来说是透明的Java线程池利用Executors创建五种不同线程池满足不同场景需求Fork/Join框架为啥要用线程池追源码ExecutorJUC的三个Executor接口三接口ExecutorExecutorService实现更多管理生命周期的方法非5场景的,自定义创建线程池场景-ThreadPoolExecutor来创建简单了解ThreadPoolExecutor来创建worker追源码,分析组成组成成分体现在-构造函数组成成分流程-简单模拟细节-一种优雅的传值方式线程池的五种状态线程池大小如何选定推荐书籍 synchronized

堆是线程间共享的,要合理的给一个对象上锁。

线程安全主要诱因

原创文章 224获赞 164访问量 14万+ 关注 私信 阅读全文
作者:bennyrhys



JAVA 并发 线程 java多线程

需要 登录 后方可回复, 如果你还没有账号请 注册新账号