java 并发编程的艺术 -- 总结
来源:互联网 发布:phantom无人机控制软件 编辑:程序博客网 时间:2024/05/23 23:23
前言
在看这本书之前,看过了《java多线程编程的核心技术》书中列出了一些java多线程会遇到的基本的类和方法,sychronized,lock,executor等的基本使用方法,为看这本书打了一些基础。《java 并发编程的艺术》中除第一章讲各种多线程概念的内存语义不好理解外,其他章节基本是对多线程concurrent包中多种类的源码讲解,个人认为很有必要一看。
内容
java并发编程 --》 第一部分从底层讲java的内存语义,happends-before,编译阶段的重排序和cpu总线的锁机制,
java内存模型: java 线程 --》 本地内存 ---》 共享内存。
volatile保证变量对内存的可见性,但是不保证操作的原子性。(在前期是通过对地址总线加锁实现。后期有改进。。(具体改进方式???))
syschronized:加锁,在编辑阶段使用关键字(锁(什么锁????了))替换。
第一部分看得头晕脑胀,很难看懂,后来凑合看完了。
第二部分: lock.lock() 所做的操作包括: 1、将当前线程放入同步队列;2、进入自旋状态(for 循环,判断能否获取锁);3、获取锁,执行线程。
讲lock的使用和实现方式。 lock接口,同步器;对线程安全的同步队列做自旋(队列中每个节点自己做循环,满足条件,则退出同步队列。)
所谓自旋,即同步队列中的每个节点进行自我检查: 首先检查自己是否是头结点;然后检查自己能不能获取到锁。 如果两个条件满足,就返回,结束自旋;
ReentrenLock 可重入锁,也可以控制锁的公平和不公平。
阅读全文
0 0
- java 并发编程的艺术 -- 总结
- 并发学习->《Java并发编程的艺术》->重点摘录总结
- Java并发编程的艺术
- Java并发编程的艺术
- 《Java并发编程的艺术》——第一章总结
- Java并发编程的艺术(上)
- Java并发编程的艺术 读笔
- Java并发编程的艺术--笔记
- 《java并发编程的艺术》读书笔记
- Java并发编程的艺术笔记
- Java并发编程的艺术-读书笔记
- Java并发编程的艺术-笔记1
- Java并发编程的艺术-笔记2
- java并发编程的艺术-读书笔记-01
- Java并发编程的艺术-第一章<并发编程的挑战>
- java并发编程的艺术【一】并发编程的挑战
- java并发Fork/join框架-java并发编程的艺术
- java并发编程的艺术-并发工具类
- 用C++和EasyX图形库编写一个简单的打砖块游戏(下)
- 新手上路之eclipse中jQuery插件及其他好用插件的安装
- github上面如何编辑README
- uva 1623 贪心 数据结构
- Android的约束布局ConstaintLayout
- java 并发编程的艺术 -- 总结
- GPUImage
- 简单明了 -- mysql中的limit用法
- 图算法之最短路径算法
- https://cn.mathworks.com/videos/improve-design-efficiency-using-modeling-standards-checking-81880.ht
- UGUI_Canvas Group应用之一淡入淡出整个窗口
- 自定义view变换随机数
- java类集--LinkedList
- 【Python】常用模块(二)——os