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并发简史
计算机加入操作系统<br>便于多个程序同时执行
资源利用率
公平性
便利性
1.2线程优势
发挥多处理器的强大能力
建模的简单性
异步事件的简化处理
用户界面响应更加灵敏
1.3线程带来的风险
安全性问题
活跃性问题
性能问题
1.4线程无处不在
Timer
servlet
远程方法调用
第2章线程安全性
当多个线程访问同一个可变的状态变量时<br>可能会出现错误,解决这种错误的方式有3种
1.不在线程之间共享该状态变量
2.将该状态变量变为不可见
j
线程安全
含义
当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行<br>主调程序里面没有使用额外的协同或者同步,这个程序始终都表现出正确的行为,这个类是线程安全的
无状态对象一定是线程安全的
原子性
竞态条件
第3章对象的共享
volatile
适用场景
在访问变量时不需要加锁
该变量不会与其他状态变量一起纳入不变性条件中
对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值
能简化代码的实现以及对同步策略的验证时,才应该使用它们<br>如果验证正确性时需要对可见性进行复杂判断,那么就不要使用volatile
确保它们自身状态的可见性<br>标识一些重要的程序生命周期事件的发生(初始化或关闭)
不可变对象
满足条件
对象创建以后状态不能修改
对象所有域都是final类型
对象是正确创建的(创建过程期间,this没有逸出)
并发过程使用共享对象<br>可以使用一些策略<br>
线程封闭
线程封闭的对象只能有一个线程拥有
只读共享
共享的对象只能被并发访问不能被修改
线程安全共享
线程安全的对象在内部实现同步,多个线程可以通过对象的共有接口访问
保护对象
封装在线程安全对象里面,由某个特定锁保护
0 条评论
下一页