`
cpszgy
  • 浏览: 22634 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

对象的逸出

阅读更多
不要在构造器中将this对象发布出去
public class Escape {
	int i;
	public Escape() {
		// TODO Auto-generated constructor stub
		 new Thread (){
			 public void run() {
				print(); 
			 };
		 }.start();
		 try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 i=2;
	}
	public void print(){
		System.out.println(i);
	}
	public static void main(String[] args) {
		new Escape();
	}
}

在构造器中启动了一个线程,则隐蔽的将this逸出给了该线程,但实际上该对象还没有完全构造成功。这种情况称为逸出(在一个对象还没有完全构造完毕前就将其发布出去)。
分享到:
评论

相关推荐

    java并发编程实践笔记资料.pdf

    15. 发布对象时,需要避免对象逸出,例如在构造函数中,开启线程,并将自身对象传入线程,造成引用传递。 16. 使用ThreadLocal变量可以确保线程封闭性,例如hibernate openSessionInView机制和jdbc的connection机制...

    java7hashmap源码-Concurrency:这是用来学习java多线程的

    对象逸出->一种错误的发布.当一个对象还没有构造完成时.就使他被其他线程所见 安全的发布对象的4种方法 *在静态初始化函数中初始化一个对象的引用 *将对象的引用保存到volatile类型域或者AtomicReference对象中 *将...

    Java并发编程规则:不可变对象永远是线程安全的.docx

    一个不可变的对象必须满足的条件:它的状态在创建后不能再修改,所有域都是final类型,并且它被正确创建(创建期间没有发生this引用的逸出)。 不可变对象的优点在于它们可以被安全地共享在多个线程之间,不需要...

    《java并发编程实战》读书笔记-第3章-对象的共享

    《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括可见性、发布与逸出、线程封闭、不可变性、安全发布等内容

    考虑氧逸出的多舱燃油箱惰化理论研究 (2012年)

    在考虑到氧逸出条件下,用数值积分的方法建立了多舱油箱燃油冲洗的数学模型。以波音747中心翼油箱为研究对象,对模型进行求解,得到了各舱氧浓度分布随着通风换气次数的变化规律。与已有文献的实验结果和计算结果对比...

    2014211990-肖逸敏-xml实验一1

    1. 处理方式:DOM一次性加载整个XML文件,建立完整的文档对象模型;SAX则是边读边解析,逐个处理事件。 2. 内存占用:DOM将所有数据加载到内存,适合小文件;SAX只保留当前处理的数据,适合大文件。 3. 操作灵活性:...

    大尺度褐煤的地下气化热解特性

    结果表明,大粒径褐煤热解在400℃才开始有气体逸出,随着温度的升高气体总产率升高,平均孔径和孔容积呈现先增大后减小的趋势;不同粒度的块状煤有效气体析出规律大致相同,但5cm见方的褐煤呈现气体析出缓慢、产量较大的...

    Java并发编程实战

    3.2 发布与逸出 3.3 线程封闭 3.3.1 Ad-hoc线程封闭 3.3.2 栈封闭 3.3.3 ThreadLocal类 3.4 不变性 3.4.1 Final域 3.4.2 示例:使用Volatile类型来发布不可变对象 3.5 安全发布 3.5.1 不正确的发布:正确...

    Java 并发编程实战

    3.2 发布与逸出 3.3 线程封闭 3.3.1 Ad-hoc线程封闭 3.3.2 栈封闭 3.3.3 ThreadLocal类 3.4 不变性 3.4.1 Final域 3.4.2 示例:使用Volatile类型来发布不可变对象 3.5 安全发布 3.5.1 不正确的发布:正确...

    Visual Basic.NET自动化系统监控--RS-232串行通信.(清华出版.范逸之.廖锦棋)

    范逸之.廖锦棋)。PDF格式扫描版,全书共分为9章,共475页。 介绍 Visual Basic .NET为广大Visual Basic用户打开了通往程序设计殿堂的大门。本书具体内容包括:串行通信的相关硬件概念、Visual Basic .NET的常用...

    Java双重检查加锁单例模式的详解

    例如,可能会被初始化两次,或者对象被非安全发布(逸出)。 DCL(Double-checked locking)是Java双重检查加锁单例模式的一种实现方法。它使用了synchronized关键字来确保线程安全,但是这也会带来性能损失。DCL看...

    java并发编程实践(英文).docx

    此外,还涉及了对象共享,包括可见性、发布与逸出、线程封闭、不可变性以及安全发布。 第二部分“构造并发应用程序”则深入到任务执行、并发控制和错误处理等主题。如何在线程中执行任务,使用Executor框架,以及...

    Java语言实用教程

    本书每章都有相当数量的精逸例题和习题,还附有两章完整的综合练习及答案。通过学习本书的内容,将为读者以后学习Java语言的各种高级应用打下坚实的基础。 本书实用性强,由浅入深,适合作为高等院校计算机及相关...

    Fe2O3/CaO复合催化剂对低阶煤催化热解行为的影响

    同时热解气相组分也发生了明显的变化,促进了挥发分的逸出,使得煤的裂解和缩聚等反应更容易进行。过量Fe2O3/CaO复合催化剂的加入会对煤的热解有抑制作用,加入质量分数5%的Fe2O3/CaO催化效果最好。

    光电传感器.pdf

    光电管包括真空光电管和充气光电管,其工作原理是当入射光照射阴极时,光子的能量传递给电子,使其逸出形成光电流,通过负载电阻可以转换为电压信号。光电倍增管则进一步提高了灵敏度,通过多级倍增电极将光电流放大...

    java学习心得

    Java是一种广泛使用的面向对象编程语言,它的核心理念是“万物皆对象”。面向对象编程(OOP)相较于面向过程编程,更注重对象的封装、继承和多态性,从而更好地模拟真实世界中的实体和它们之间的关系。 面向对象的...

    岩浆侵入对煤层瓦斯成藏及突出的影响

    基于理论分析和实验研究,探讨了岩浆侵入的一般规律,研究了岩浆侵入对煤层的破坏以及对瓦斯生成-圈闭的作用,并以淮北卧龙湖井田岩浆侵蚀严重的10煤层为研究对象,验证岩浆侵入对煤层的瓦斯圈闭和突出的控制作用。...

    C#二维三维图形绘制工程实例宝典 随书光盘

    4.3 c#中图形对象的变换 93 基本变换 93 4.4 c#中的多对象变换 101 4.5 文字变换 105 第5章 二维线形图形 109 5.1 序列化和反序列化及二维图形的基本框架 109 5.1.1 c#序列化和反序列化 110 5.1.2 二维图形...

Global site tag (gtag.js) - Google Analytics