Java问题一:什么是this逃逸
来源:互联网 发布:每股收益的算法 编辑:程序博客网 时间:2024/06/01 08:40
- 什么是this逃逸
this逃逸是指构造函数返回之前其他线程持有该对象的引用,this逃逸经常发生在构造函数中启动线程或注册监听器。
public class ThisEscape { private String value = ""; public ThisEscape() { new Thread(new TestDemo()).start(); this.value = "this escape"; } public class TestDemo implements Runnable { @Override public void run() { /** * 这里是可以通过ThisEscape.this调用外围类对象的,但是测试外围累对象可能还没有构造完成, * 所以会发生this逃逸现象 */ System.out.println(ThisEscape.this.value); } }}
正确方式应该如下:
public class FixThisEscape { private String value = ""; private Thread thd; public FixThisEscape() { /** * 构造函数中可以创建Thread对象,但是不要启动,另外使用start方法启动线程 */ thd = new Thread(new TestDemo()); this.value = "this escape"; } public void start() { thd.start(); } public class TestDemo implements Runnable { @Override public void run() { System.out.println(FixThisEscape.this.value); } }}
阅读全文
0 0
- Java问题一:什么是this逃逸
- Java并发编程之this逃逸问题
- this逃逸问题
- this逃逸问题
- Java this 引用逃逸
- 多线程/并发笔记:Java并发编程之this逃逸问题
- this逃逸
- this逃逸
- this逃逸
- this逃逸
- 线程中 this逃逸
- this引用逃逸
- 什么是逃逸分析(Escape Analysis)?
- java并发编程实践学习(四)对象的发布和逸出之this逃逸
- Java-逃逸分析
- java逃逸分析
- Java中的逃逸分析
- 变量可见性和volatile, this逃逸, 不可变对象, 以及安全公开--Java Concurrency In Practice C03读书笔记
- aide
- java查询客户端IP工具类
- UVA 11437 Triangle Fun
- 。。。。。。
- HDU
- Java问题一:什么是this逃逸
- Qt自适应大小显示图片,添加菜单
- bootstrap-fileinput上传插件试用
- KNN算法
- JAVA2
- 斜率优化DP初探 + 例题
- CentOS 安装运行 mongoDB docker镜像
- XListView上拉刷新下拉加载
- Devops学习实践(五)jenkins 与 ant 、findbugs 配合使用