3.1 可见性
sychronized关键字的作用有两个:1是原子性 2是可见性。后者常常被忽视
NoVisibility程序演示没有同步的的共享变量。
3.1.1 失效数据
3.1.2 非原子的64位操作:存在于非volatile或没有加锁控制的long和double
3.1.3 加锁的与可见性
3.1.4 volatile
数据为共享,不会被缓存在寄存器和其他对对于处理器不可见的地方,每个线程不会有数据的本地拷贝。
volatile的用法:
http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
3.2 发布与逃逸
什么是发布
什么是逃逸
UnsafeStates演示逃逸
ThisEscape演示内部类的方式发布对象--隐式地使this引用逃逸。
这样的话如果在构造函数中启动一个线程,那么在构造没有完成的情况下,this指的对象已经对线程是可见的了(详见7章)
后面这句话翻译的有点问题:私有方法和终结方法还是写成private和final比较好懂
#TODO 3.8程序清单SafeListener描述了怎么避免this的构造过程逃逸
3.3线程的封闭
3.3.1 ad-hot
3.3.2 栈封闭-我理解就是局部变量
3.3.3 ThreadLocal
3.4 不变性
程序清单3-11 显示如何用可变的对象构建不可变类
3.4.1final 域
final域的特殊含义:保证初始化过程的安全性,从而可以不受限制访问不可变对象,无需同步
3.5 安全发布
程序清单3-14没有同步的发布
3.5.1 不正确的发布
3.5.3 安全发布的常用模式
3.5.4 事实上不可变的对象
看了下Collections.synchronizdMap, 其实就是使用装饰者模式把方法都加了synchronizd, 把引用加了final
分享到:
相关推荐
《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括可见性、发布与逸出、线程封闭、不可变性、安全发布等内容
《java并发编程实战》读书笔记-第2章-线程安全性,脑图形式,使用xmind8制作 包括引言、线程安全性定义、原子性、加锁机制、使用锁保护状态、活跃性与性能等内容
《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括线程安全类设计、实例封闭、线程安全性委托、现有线程安全类中添加功能和文档化同步策略等内容
在Java并发编程中,数据的封装与访问控制、线程安全性的考量、同步机制的使用是重要的基础概念和技巧。以下是从给出的文件内容中提取出的详细知识点: 1. 数据封装与访问控制:确保内部私有数据不被轻易访问,并且...
《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括同步容器类、并发容器类、阻塞队列和生产者消费者模式、阻塞和中断方法、同步工具类。最后是构建高效且可伸缩的结果缓存
《Java并发编程实战》个人读书笔记,非常详细: 1 简介 2 线程安全性 3 对象的共享 4 对象的组合 5 基础构建模块 6 任务执行 7 取消与关闭 8 线程池的使用 9 图形用户界面应用程序 10 避免活跃性危险 11 性能与可...
Java秒杀系统方案优化-高性能高并发实战 Java秒杀系统方案优化-高性能高并发实战
这本书的读书笔记涵盖了多个关键知识点,旨在帮助读者深入理解Java并发编程的核心概念。 1. **线程和进程的区别** - **线程** 是程序执行的最小单位,一个进程中可以有多个线程同时执行,共享同一块内存空间,通信...
《实战Java高并发程序设计》是一本专注于Java并发编程实践的书籍,试读版提供了前两章的内容,为读者提供了一个初步了解并发编程基础的窗口。在Java领域,并发编程是构建高性能、高效率系统的关键技术,对于软件开发...
这本"Java并发编程学习笔记"可能是作者在深入研究Java并发特性、工具和最佳实践过程中积累的心得体会。下面,我们将根据这个主题,探讨一些关键的Java并发编程知识点。 1. **线程与进程**:在多任务环境中,线程是...
### Java并发编程实践笔记知识点详解 #### 一、保证线程安全的方法 1. **不要跨线程访问共享变量:** 当多个线程共享某个变量时,若其中一个线程修改了该变量,其他线程若没有正确同步,则可能读取到错误的数据。...
1. **Java并发基础**:首先,笔记可能会介绍Java并发的基础概念,包括线程的创建(通过`Thread`类或实现`Runnable`接口)、线程的状态(新建、运行、阻塞、等待、死亡)以及线程的生命周期。 2. **同步机制**:Java...
读书笔记:实战Java高并发程序设计学习笔记
读书笔记:《实战Java高并发程序设计》读书笔记
MLDN JAVA-WEB开发实战笔记PDF可能包含更多实践案例和项目经验,涵盖了如何将理论知识应用于实际开发过程中的技巧和最佳实践。通过这些笔记,开发者可以学习到如何设计和实现一个完整的Java Web应用,包括数据库设计...
并发编程实战》阅读笔记 有关 Java 并发编程~ 别急别急,在重写它啦~,会补充一些新的内容进去,预计 2020/02 完成。 Content Java 并发编程基础 保证线程安全的两个角度 构造安全的并发应用程序 Java 并发高级主题 ...
│ Java并发编程.png │ ppt+源码.rar │ 高并发编程第二阶段01讲、课程大纲及主要内容介绍.wmv │ 高并发编程第二阶段02讲、介绍四种Singleton方式的优缺点在多线程情况下.wmv │ 高并发编程第二阶段03讲、...
读书笔记:java高并发程序设计实战
读书笔记:《实战Java高并发程序设计》学习笔记
读书笔记:《实战 Java高并发程序设计》学习笔记