java并发编程实战
2024-03-26 17:13:38 0 举报
AI智能生成
《Java并发编程实战》是一本关于Java并发编程的权威指南,由知名软件工程师Brian Goetz和Tim Peierls等合著。本书深入探讨了Java并发编程的核心内容,涵盖了从基础理论到高级应用的各个方面。全书分为12章,从Java并发API的概述开始,逐步深入讲解各种并发对象、线程安全、同步、并发工具、线程池、Executor框架等主题。本书还提供了丰富的示例代码,以及清晰的图示,使读者能够轻松理解并发编程的核心概念。本书适合Java开发者和系统架构师阅读,对于想要深入了解Java并发编程的读者来说,是一本不可多得的参考书。
作者其他创作
大纲/内容
常用注解
@NotThreadSafe
@ThreadSafe
@GuardedBy
第4章对象的组合
设计线程安全的基本要素
找出构成对象状态的所有变量
找出约束状态的不变性条件
建立对象状态的并发管理策略
第1章
1.1并发简史
计算机加入操作系统
便于多个程序同时执行
便于多个程序同时执行
资源利用率
公平性
便利性
1.2线程优势
发挥多处理器的强大能力
建模的简单性
异步事件的简化处理
用户界面响应更加灵敏
1.3线程带来的风险
安全性问题
活跃性问题
性能问题
1.4线程无处不在
Timer
servlet
远程方法调用
第2章线程安全性
当多个线程访问同一个可变的状态变量时
可能会出现错误,解决这种错误的方式有3种
可能会出现错误,解决这种错误的方式有3种
1.不在线程之间共享该状态变量
2.将该状态变量变为不可见
j
线程安全
含义
当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行
主调程序里面没有使用额外的协同或者同步,这个程序始终都表现出正确的行为,这个类是线程安全的
主调程序里面没有使用额外的协同或者同步,这个程序始终都表现出正确的行为,这个类是线程安全的
无状态对象一定是线程安全的
原子性
竞态条件
第3章对象的共享
volatile
适用场景
在访问变量时不需要加锁
该变量不会与其他状态变量一起纳入不变性条件中
对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值
能简化代码的实现以及对同步策略的验证时,才应该使用它们
如果验证正确性时需要对可见性进行复杂判断,那么就不要使用volatile
如果验证正确性时需要对可见性进行复杂判断,那么就不要使用volatile
确保它们自身状态的可见性
标识一些重要的程序生命周期事件的发生(初始化或关闭)
标识一些重要的程序生命周期事件的发生(初始化或关闭)
不可变对象
满足条件
对象创建以后状态不能修改
对象所有域都是final类型
对象是正确创建的(创建过程期间,this没有逸出)
并发过程使用共享对象
可以使用一些策略
可以使用一些策略
线程封闭
线程封闭的对象只能有一个线程拥有
只读共享
共享的对象只能被并发访问不能被修改
线程安全共享
线程安全的对象在内部实现同步,多个线程可以通过对象的共有接口访问
保护对象
封装在线程安全对象里面,由某个特定锁保护
0 条评论
下一页