Java并发编程
Java并发编程技术讲解。
dengwenjieyear
编程、阅读、写作。
展开
-
什么是“线程封闭”?
为了确保线程的安全,通常需要保证可变的共享数据的同步访问,具体采用的方式有很多;但还有一种方法可以保证线程的安全,即是使可变数据不共享,或者是使数据不可变。所谓“线程封闭”即是仅在单线程中访问数据,也就是通过让可变数据不被多个线程共享以确保数据的正确性。 栈封闭 局部变量在函数的作用域当中,只有该函数本身可以访问,因此,也就自然地保证了线程的安全性。这就是线程封闭中的“栈封闭”。举例如下所示。...原创 2019-02-13 01:33:25 · 1775 阅读 · 4 评论 -
什么是“this引用逸出”?
this引用逸出是指,在类的构造方法中发布该类的对象,导致尚未构造完全的对象被其他线程访问。这样一来,不同的线程得到的可能是不同的结果,有些线程访问的是构造完全的对象,而另一些线程则会访问到尚未构造完全的对象,最终导致不可预测的错误。 下面来看2个代码示例。 public class UnSafeDemo{ public UnSafeDemo(EventSource source){...原创 2019-02-12 19:52:24 · 1030 阅读 · 2 评论