并发
靖子甘
这个作者很懒,什么都没留下…
展开
-
JAVA并发(六)对象的安全发布
对象的不安全发布主要有:this逸出,在对象还未实例化完成时,就能被其他对象锁获取(发布)this逸出什么是this逸出对于一个类C来说,“外部方法”指的是行为不完全由类C规定的方法,包括其他类定义的方法,以及类C中可以被改写的方法。当把类C的对象传递给某个外部方法时,相当于发布了该对象,此时如果C的实例未完成实例化,就称为类C的实例的this逸出。最常见的“外部方法”使用场景是在构造器中生...原创 2019-12-24 20:09:40 · 254 阅读 · 1 评论 -
JAVA并发(五)ReentrantLock&Condition
ReentrantLock是JAVA中除synchronized外,另一种简便的管理资源锁的工具类,它还提供了Condition对象的创建,供调用者添加不同的条件队列,实现更灵活多样化的等待机制,ReentrantLock是基于AQS实现的,所以在阅读本文前需要掌握AQS[JAVA并发(二)AQS](https://blog.csdn.net/weixin_44922510/article/details/103614234)。原创 2019-12-24 19:22:52 · 406 阅读 · 0 评论 -
JAVA并发(四)JMM、CAS、原子性、可见性、有序性、synchronized对象锁、JVM锁优化
本文将从缓存与内存之间数据安全传递的问题入手,介绍现代处理器的缓存一致性协议,然后介绍JMM工作内存、主内存、以及二者之间数据的安全传递是如何保证的,进而详细介绍原子性、可见性、有序性;最后单独一章介绍JAVA对象锁-----synchronized关键字的原理、使用、以及JVM的锁优化。原创 2019-12-23 17:00:30 · 1625 阅读 · 0 评论 -
JAVA并发(三)ThreadLocal与JAVA的四种引用
ThreadLocal用来在多线程环境中安全的保存某一个变量或对象,用以在当前线程的上下文传递。本文将介绍ThreadLoal的实现原理以及它的内存泄露问题,所以,首先会介绍JAVA中四种引用:强引用、软引用、弱引用、虚引用。原创 2019-12-19 15:20:56 · 864 阅读 · 1 评论 -
JAVA并发(二)AQS与同步工具类
构造线程安全类时常用的一个策略是将线程安全委托给现有的线程安全类,Java平台类库包含了丰富的线程安全类,包含同步容器类、同步工具类。这些同步容器类、同步工具类中,很多底层实现都是AQS,所以,本文将先介绍AQS,再分别介绍各种工具类。原创 2019-12-19 14:54:11 · 814 阅读 · 0 评论 -
JAVA并发(一)任务执行框架Executor
Executor框架是JAVA并发包中的重要框架,负责线程池的创建与任务的执行,本文将从Executor框架出发,逐步介绍任务的分类,以及线程池的创建,包含了BlockingQueue、任务拒绝策略、线程池大小、线程池选择等,最后,介绍了ThreadPoolExecutor的扩展方法,对线程池的任务进行统计。原创 2019-12-13 15:44:25 · 956 阅读 · 0 评论