Java并发学习笔记(8)发布逸出
(1)发布:发布是指将一个对象,使其引用储存到一个其他代码可以访问到的地方,在一个非私有方法返回这个引用,也可以把它传递到其他对象中.
b) 发布第二种简单的方式就是在一个公共方法内直接return 对象的引用
class A1{public EventListener l;
}public class MyThread{EventListener l=null;private MyThread(){l=new EventListener() {};}public static MyThread newInstance(A1 a){MyThread my=new MyThread(); a.l=my.l;return my;}
}
其实A1中的l我没有封装.应该加以封装.我只是掩饰下如何注册
(2)逸出:如果对象在没有构造完成前就将其发布,这就是逸出.在构造中启动线程,会使未构造完成的对象发布出去,造成逸出.
c) 引用储存到volatile或者AtomicReference
(4)如果需要发布一个非线程安全的状态集(就是包含基本类型的对象),可以先复制对象,然后发布复制后的对象.这样避免外来客户修改非线程安全的类.造成同步错误.这前提是不需要此集合状态在多个线程间一致.
(6)可以安全的发布一个线程安全的类并且发布时不需要有任何我约束行为
Java并发学习笔记(8)发布逸出相关推荐
- 20W字纯手打Java并发学习笔记,助力你金三银四,决战春招,必进大厂
假如阿里给了你这个机会,你却卡在三面,你会不会懊恼? 假如阿里真的让你通过,只需要你把这一块技能的底层原理摸透,你学不学? 我有一个朋友,他小厂背景.15年毕业.普通学校,这看起来确实没什么战斗力,但 ...
- Java并发学习笔记:ReentrantLock
锁的获取主要是这两个函数,当然还有 lockInterruptibly( ) 和 tryLock(long timeout, TimeUnit unit) 这种响应中断和带时间限制的函数,不过和普通的 ...
- java this 逸出_发布逸出 java this 逸出【转】
转自:http://blog.csdn.net/joker_zhou/article/details/7322801 (1)发布:发布是指将一个对象,使其引用储存到一个其他代码可以访问到的地方,在一个 ...
- 分布式系统 概念 高可用 高并发 学习笔记
分布式系统 概念 高可用 高并发 学习笔记 0. 分布式系统基本概念 0.1 背景 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价 ...
- 尚学堂JAVA高级学习笔记_1/2
尚学堂JAVA高级学习笔记 文章目录 尚学堂JAVA高级学习笔记 写在前面 第1章 手写webserver 1. 灵魂反射 2. 高效解析xml 3. 解析webxml 4. 反射webxml 5. ...
- 可能是最全面的 Java G1学习笔记
转载自 可能是最全面的 Java G1学习笔记 引子 最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题.总体来讲,对于G1我有几个疑惑 ...
- 深入浅出 Java CMS 学习笔记
转载自 深入浅出 Java CMS 学习笔记 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. 1. ...
- 转载:mongoDB java驱动学习笔记
http://www.blogjava.net/watchzerg/archive/2012/09/22/388346.html mongoDB java驱动学习笔记 指定新mongo实例: Mong ...
- java多线程学习笔记。
java多线程学习笔记 线程的优缺点: 多线程的好处: 充分利用多处理核心,提高资源的利用率和吞吐量. 提高接口的响应效率,异步系统工作. 线程的风险: 安全危险(竞争条件):什么坏事都没有发生.在没 ...
最新文章
- 【Java面试题】37 说出ArrayList,Vector, LinkedList的存储性能和特性
- 《Arduino实战》——第1章 你好Arduino
- 计算机网络第六章ppt课件,计算机网络与通信(第6章).ppt
- Linux常用命令英文全称与中文解释Linux系统
- OpenGL反射和折射
- win10系统开不了机
- python中布尔类型是特殊的_Python中的特殊方法以及应用详解
- Android屏幕大小适配问题解决
- 编译原理教程_8 静态语义分析和中间代码生成
- 【CNN】很细的讲解什么以及为什么是卷积(Convolution)!
- IntelliJ IDEA 中 右键新建时,选项没有Java class
- 什么是网络,网络类型,网络结构
- A4纸在屏幕上的像素尺寸
- RationalDMIS 2020定制报告(EXCEL)
- 华为mate40pro和华为mate30pro的区别
- 使用jr-qrcode插件生成图片格式的二维码
- 2021-08-25 新手创建bt面板并创建网站
- [代码解读]基于多代理RL的车联网频谱分享_Python实现
- 2022年版中国煤矿安全设备市场投资规划及需求前景预测报告
- 车架号/vin码识别