![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发学习
akavice
菜鸟工作狗一只
展开
-
安全发布对象
发布对象发布对象:使一个对象能够被当前范围之外的代码所使用对象溢出:一种错误的发布,当一个对象还没有构造完成时,就使它被其他线程所见不正确的发布可变对象导致的两种错误:1.发布线程意外的所有线程都可以看到被发布对象的过期的值2.线程看到的被发布对象的引用是最新的,然而被发布对象的状态却是过期的不安全的发布import com.gwf.concurrency.annoations.NotThread...转载 2018-04-30 21:05:57 · 356 阅读 · 1 评论 -
不可变对象
不可变对象不可变对象需要满足的条件对象创建以后其状态就不能修改对象所有域都是final类型对象是正确创建的(在对象创建期间,this引用没有逸出)创建不可变对象的方式(参考String类型)将类声明成final类型,使其不可以被继承将所有的成员设置成私有的,使其他的类和对象不能直接访问这些成员对变量不提供set方法将所有可变的成员声明为final,这样只能对他们赋值一次通过构造器初始化所有成员,进...转载 2018-04-30 21:11:21 · 154 阅读 · 0 评论 -
不可变对象
不可变对象指声明并赋值后就不可更改的变量,包括基本类型和实例对象。实现方法有:1.由final修饰 final修饰的类不可继承,final修饰的方法不可重写,final修饰的基本变量不可更改值(包括Integer这样的包装类),final修饰的对象不可被重新引用至新的地址(但是这个地址中的对象本身可以被修改)。2.采用专门的不可变对象类 为了保证对象中的值也不能被修改。可以采用不可变对...原创 2018-04-30 22:17:12 · 134 阅读 · 0 评论 -
J.U.N AQS之CountDownLatch的使用
转载于 http://www.importnew.com/15731.html作者:张涛正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDo...转载 2018-05-01 19:57:49 · 122 阅读 · 0 评论 -
线程封闭-ThreadLocal类的学习笔记
线程封闭是指在多线程环境对资源的访问过程中,为了保证线程安全性,将共享资源拷贝为一个副本来单独使用,而不改变原资源。这样的做法保证了程序的性能,因为不再需要限制同一时间内只有一个线程访问资源。 ThreadLocal是线程封闭的一个好的实现类,它为每一个使用资源的线程提供一个该资源的拷贝,线程可以单独改变自己的拷贝而不与其他线程冲突。每一个线程都保留有对其线程局部...原创 2018-04-29 18:06:06 · 248 阅读 · 0 评论 -
安全发布对象-单例模式的多种实现
并发中单例模式的写法相对单线程模式中有所不同。这里只列举正确且关键的两个模式1.懒汉模式-双重同步锁public class SingletonExample4 { // 私有构造函数 private SingletonExample4() { } // 1、memory = allocate() 分配对象的内存空间 // 2、ctorInstance(...原创 2018-04-30 21:09:25 · 111 阅读 · 0 评论