网站建设的目标有哪些网络营销理论与实务
实战Java高并发程序设计(第二版)
- 为什么会有并行计算?
 - 并行计算需要回答的问题
 - 基本概念
 - 并发级别有哪些?
 - Amdahl定律和Gustafson定律
 - Java并发三特性
 - 进程和线程
 - 线程的生命周期
 - Thread类run()与start()的区别
 
为什么会有并行计算?
单核CPU → 摩尔定律失效 → 多核CPU → 并行计算
Donald Ervin Kunth对于多核CPU的评价:这种现象或多或少是由于硬件设计师已经无计可施了,他们将摩尔定律失效的责任推给了软件开发者
并行计算需要回答的问题
①如何保证线程安全?
 ②如何正确理解线程间的无序性和可见性?
 ③如何将串行程序改造为并行程序?
基本概念
同步和异步(synchronous&asynchronous)
并发和并行(concurrency¶llelism)
临界区(critical section)
阻塞和非阻塞(blocking&non-blocking)
死锁、饥饿和活锁(deadLock、starvation&liveLock)
并发级别有哪些?
①阻塞(blocking):synchronized和可重入锁
 ②无饥饿(starvation-free):公平锁
 ③无障碍(obstruction-free):乐观锁
 ④无锁(lock-free):CAS
 ⑤无等待(wait-free):RCU
Amdahl定律和Gustafson定律
Java并发三特性
①原子性
 ②有序性
 ③可见性 → 指令重排序 → happen-before原则
进程和线程
进程:房子
 线程:房子里的人
线程的生命周期
①new
 ②runnable
 ③blocked
 ④waiting
 ⑤time-waited
 ⑥terminated
