2020.7.26开始阅读学习 葛一鸣<<实战Java高并发程序设计>>
第一章 走入并行的世界
并行计算在图像处理和服务端编程有大量的使用
1.基本概念
1.1同步和异步 形容一次方法的调用
同步(Synchronous) 调用开始,调用者必须等待方法的返回,才能继续后续的行为 (例如:下馆子)
异步(Asynchronous) 调用开始,方法立即返回,调用者可以继续后续的操作.真正的方法执行是在另一个线程中,整个过程不会影响调用者的工作.(例如:点外卖)
1.2并发和并行 都表示两个或多个任务一起执行
并发(Concurrency) 侧重于多个任务交替执行,多任务之间可能还是串行执行
并行(Parallelism) 真正意义上的 同时执行 (更多是在多核情况下)
1.3临界区 表示公共资源(共享数据)
临界区 可以被多个线程使用,但是每次只能有一个线程使用,一旦临界区被占用,其他线程就必须等待.
2.并发级别
阻塞
无饥饿
无障碍
无锁
五等待
3.JMM
原子性
可见性
有序性