《Java高并发核心编程.卷2,多线程、锁、JMM、JUC、高并发设计模式》_百 ...

《Java⾼并发核⼼编程.卷2,多线程、锁、JMM、JUC、⾼并发设计模式》《Java⾼并发核⼼编程.卷2,多线程、锁、JMM、JUC、⾼并发设计模式》
⽬录
第1章多线程原理与实战
1.2 ⽆处不在的进程和线程
1.2.1 进程的基本原理
1.2.2 线程的基本原理
1.2.3 进程与线程的区别
1.3 创建线程的4种⽅法
1.3.1 Thread类详解
1.3.2 创建⼀个空线程
1.3.3 线程创建⽅法⼀:继承Thread类创建线程类
车座头枕
1.3.4 线程创建⽅法⼆:实现Runnable接⼝创建线程⽬标类
1.3.5 优雅创建Runnable线程⽬标类的两种⽅式
1.3.6 通过实现Runnable接⼝的⽅式创建线程⽬标类的优缺点
1.3.7 线程创建⽅法三:使⽤Callable和FutureTask创建线程
1.3.8 线程创建⽅法四:通过线程池创建线程
1.4 线程的核⼼原理
1.4.1 线程的调度与时间⽚
1.4.2 线程的优先级
1.4.3 线程的⽣命周期
1.4.4 ⼀个线程状态的简单演⽰案例
无功功率计算
1.4.5 使⽤Jstack⼯具查看线程状态
1.5 线程的基本操作
1.5.1 线程名称的设置和获取
1.5.2 线程的sleep操作
1.5.3 线程的interrupt操作
1.5.4 线程的join操作
1.5.5 线程的yield操作
1.5.6 线程的daemon操作
1.5.7线程状态总结
1.6线程池原理与实战
1.6.1 JUC的线程池架构
1.6.2 Executors的4种快捷创建线程池的⽅法
1.6.3线程池的标准创建⽅式
1.6.4向线程池提交任务的两种⽅式
1.6.5线程池的任务调度流程
1.6.6 ThreadFactory (线程⼯⼚)
1.6.7任务阻塞队列
1.6.8调度器的钩⼦⽅法
1.6.9线程池的拒绝策略
1.6.10线程池的优雅关闭
1.6.11 Executors快捷创建线程池的潜在问题1.7确定线程池的线程数
第2章 Java内置锁的核⼼原理
2.1线程安全问题
2.1.1 ⾃增运算不是线程安全的
2.1.2临界区资源与临界区代码段
2.2 synchronized关键字
2.2.1 synchronized同步⽅法
2.2.2 synchronized同步块
2.2.3静态的同步⽅法
2.3⽣产者-消费者问题
2.3.1⽣产者-消费者模式
2.3.2⼀个线程不安全的实现版本
2.3.3⼀个线程安全的实现版本
2.4 Java对象结构与内置锁
2.4.1 Java对象结构
2.4.2 Mark Word的结构信息
2.4.3使⽤JOLI具查看对象的布局
2.4.4⼤⼩端问题
2.4.5⽆锁、偏向锁、轻量级锁和重量级锁2.5偏向锁的原理与实战
2.5.1偏向锁的核⼼原理
2.5.2偏向锁的演⽰案例
2.5.3偏向锁的膨胀和撤销
2.6轻量级锁的原理与实战
2.6.1轻量级锁的核⼼原理
密封条生产线
2.6.2轻量级锁的演⽰案例
2.6.3轻量级锁的分类
2.6.4轻量级锁的膨胀
2.7重量级锁的原理与实战
2.7.1重量级锁的核⼼原理
2.7.2重量级锁的开销
2.7.3重量级锁的演⽰案例
2.8偏向锁、轻量级锁与重量级锁的对⽐
2.9线程间通信
2.9.1线程间通信的定义
电磁水泵2.9.2低效的线程轮询
2.9.3 wait⽅法和notify⽅法的原理
2.9.4“等待通知’ 通信模式演⽰案例
2.9.5⽣产者-消费者之间的线程间通信
2.9.6需要在synchronized同步块的内部使⽤wait和notify 第3章 CAS原理与JUC原⼦类
3.1 什么是CAS
3.1.1 Unsafe类中的CAS⽅法
3.1.2使⽤CAS进⾏⽆锁编程
3.1.3使⽤⽆锁编程实现轻量级安全⾃增
3.1.4字段偏移量的计算
3.2 JUC原⼦类
3.2.1 JUC中的Atomic原⼦操作包
3.2.2基础原⼦类AtomicInteger
3.2.3数组原⼦类AtomicIntegerArray
3.2.4 AtomicInteger线程安全原理,
3.3对象操作的原⼦性
3.3.1引⽤类型原⼦类
3.3.2属性更新原⼦类
3.4 ABA问题
3.4.1了解ABA问题
3.4.2 ABA问题解决⽅案
3.4.3使⽤AtomicStampedReference解决ABA问题
3.4.4使⽤AtomicMarkableReference解决ABA问题
3.5提升⾼并发场景下CAS操作的性能
3.5.1以空间换时间: LongAdder
3.5.2 LongAdder的原理
3.6 CAS在JDK中的⼴泛应⽤
3.6.1 CAS操作的弊端和规避措施
3.6.2 CAS操作在JDK中的应⽤
第4章可见性与有序性的原理
4.1 CPU物理缓存结构
4.2并发编程的三⼤问题
4.2.1原⼦性问题
4.2.2可见性问题
4.2.3有序性问题
4.3硬件层的MESI协议原理
4.3.1总线锁和缓存锁
4.3.2 MSI协议
4.3.3 MES|协议及RFO请求
4.3.4 volatile的原理
4.4有序性与内存屏障
新型网络广告4.4.1重排序
4.4.2 As-if- -Serial规则
4.4.3硬件层⾯的内存屏障
4.5 JMM详解
4.5.1什么是Java内存模型
4.5.2 JMM与JVM物理内存的区别
4.5.3 JMM的8个操作
4.5.4 JMM如何解决有序性问题
4.5.5 volatile语义中的内存屏障
4.6 Happens- Before规则
4.6.1 Happens- -Before规则介绍
4.6.2规则1:顺序性规则
4.6.3规则2: volatile规则
4.6.4规则3:传递性规则
4.6.5规则4:监视锁规则.
4.6.6规则5: start()规则
4.6.7规则6: join()规则
4.7 volatile不具备原⼦性
4.7.1 volatile变量的⾃增实例
4.7.2 volatile变量的复合操作不具备原⼦性的原理第5章 JUC显式锁的原理与实战
5.1显式锁
5.1.1显式锁L _ock接⼝
5.1.2可重⼊锁ReentrantL ock
5.1.3使⽤显式锁的模板代码
5.1.4基于显式锁进⾏“等待通知”⽅式的线程间通信
5.1.5 L ockSupport
5.1.6显式锁的分类
5.2悲观锁和乐观锁
5.2.1悲观锁存在的问题
5.2.2通过CAS实现乐观锁
5.2.3不可重⼊的⾃旋锁
5.2.4可重⼊的⾃旋锁.
5.2.5 CAS可能导致“总线风暴’
5.2.6 CLH⾃旋锁
5.3公平锁与⾮公平锁
5.3.1⾮公平锁实战
5.3.2公平锁实战
5.4可中断锁与不可中断锁
线内钩子5.4.1锁的可中断抢占
5.4.2死锁的监测与中断
5.5共享锁与独占锁
5.5.1独占锁
5.5.2共享锁Semaphore
5.5.3共享锁CountDownL .atch

本文发布于:2024-09-22 05:35:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/336077.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线程   创建   操作   问题   规则   中断   内存   原理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议