java高并发程序设计 源码_实战Java高并发程序设计.pdf

前言

目 录

第1 章 走入并行世界

1.1 何去何从的并行计算 1

1.1.1 忘掉那该死的并行 2

1.1.2 可怕的现实:摩尔定律的失效 4

1.1.3 柳暗花明:不断地前进 5

1.1.4 光明或是黑暗 6

1.2 你必须知道的几个概念 6

1.2.1 同步(Synchronous )和异步(Asynchronous )7

1.2.2 并发(Concurrency )和并行(Parallelism ) 8

1.2.3 临界区 9

1.2.4 阻塞(Blocking )和非阻塞(Non-Blocking ) 9

1.2.5 死锁(Deadlock )、饥饿(Starvation)和活锁(Livelock ) 9

1.3 并发级别11

1.3.1 阻塞(Blocking )11

1.3.2 无饥饿(Starvation-Free ) 11

1.3.3 无障碍(Obstruction-Free )12

1.3.4 无锁(Lock-Free ) 12

 V 

1.3.5 无等待(Wait-Free ) 13

1.4 有关并行的两个重要定律 13

1.4.1 Amdahl 定律13

1.4.2 Gustafson 定律 16

1.4.3 Amdahl 定律和Gustafson 定律是否相互矛盾 16

1.5 回到Java :JMM 17

1.5.1 原子性(Atomicity ) 18

1.5.2 可见性(Visibility ) 20

1.5.3 有序性(Ordering ) 22

1.5.4 哪些指令不能重排:Happen-Before 规则 27

1.6 参考文献27

第2 章 Java 并行程序基础

2.1 有关线程你必须知道的事 29

2.2 初始线程:线程的基本操作 32

2.2.1 新建线程 32

2.2.2 终止线程 34

2.2.3 线程中断 38

2.2.4 等待(wait )和通知(notify ) 41

2.2.5 挂起(suspend )和继续执行(resume )线程 44

2.2.6 等待线程结束(join )和谦让 (yield ) 48

2.3 volatile 与Java 内存模型(JMM )50

2.4 分门别类的管理:线程组 52

2.5 驻守后台:守护线程(Daemon )54

2.6 先干重要的事:线程优先级 55

2.7 线程安全的概念与synchronized 57

前言

2.8 程序中的幽灵:隐蔽的错误 61

2.8.1 无提示的错误案例 61

2.8.2 并发下的ArrayList 62

2.8.3 并发下诡异的HashMap 63

2.8.4 初学者常见问题:错误的加锁 66

2.9 参考文献68

第3 章 JDK 并发包

3.1 多线程的团队协作:同步控制 70

3.1.1 synchronized 的功能扩展:重入锁 71

3.1.2 重入锁的好搭档:Condition 条件 80

3.1.3 允许多个线程同时访问:信号量(Semaphore ) 83

3.1.4 ReadWriteLock 读写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值