摘要: 1. 简介 本篇文章是上一篇文章( "创建单例 bean 的过程" )的延续。在上一篇文章中,我们从战略层面上领略了 方法的全过程。本篇文章,我们就从战术的层面上,详细分析 方法中的一个重要的调用,即 方法。在本篇文章中,你将看到三种不同的构造 bean 对象的方式。你也会了解到构造 bean 对象 阅读全文
posted @ 2018-06-06 08:42 田小波⊰ 阅读(589) 评论(0) 推荐(1) 编辑
摘要: 1. 简介 在 "上一篇文章" 中,我比较详细的分析了获取 bean 的方法,也就是 的实现逻辑。对于已实例化好的单例 bean,getBean(String) 方法并不会再一次去创建,而是从缓存中获取。如果某个 bean 还未实例化,这个时候就无法命中缓存。此时,就要根据 bean 的配置信息去创 阅读全文
posted @ 2018-06-04 08:48 田小波⊰ 阅读(688) 评论(0) 推荐(2) 编辑
摘要: 1. 简介 为了写 Spring IOC 容器源码分析系列的文章,我特地写了一篇 Spring IOC 容器的 "导读" 文章。在导读一文中,我介绍了 Spring 的一些特性以及阅读 Spring 源码的一些建议。在做完必要的准备工作后,从本文开始,正式开始进入源码分析的阶段。 在本篇文章中,我将 阅读全文
posted @ 2018-06-01 13:14 田小波⊰ 阅读(1042) 评论(2) 推荐(1) 编辑
摘要: 1. 简介 Spring 是一个轻量级的企业级应用开发框架,于 2004 年由 "Rod Johnson" ) 发布了 1.0 版本。经过十几年的迭代,现在的 Spring 框架已经非常成熟了。Spring 包含了众多模块,包括但不限于 Core、Bean、Context、AOP 和 Web 等。在 阅读全文
posted @ 2018-05-30 08:59 田小波⊰ 阅读(1859) 评论(4) 推荐(7) 编辑
摘要: 1.简介 CAS 全称是 compare and swap,是一种用于在多线程环境下实现同步功能的机制。CAS 操作包含三个操作数 内存位置、预期数值和新值。CAS 的实现逻辑是将内存位置处的数值与预期数值想比较,若相等,则将内存位置处的值替换为新值。若不相等,则不做任何操作。 在 Java 中,J 阅读全文
posted @ 2018-05-15 08:13 田小波⊰ 阅读(2354) 评论(5) 推荐(2) 编辑
摘要: 1.简介 在分析完 (以下简称 AQS)和 的原理后,本文将分析 java.util.concurrent 包下的两个线程同步组件 和`CyclicBarrier`。这两个同步组件比较常用,也经常被放在一起对比。通过分析这两个同步组件,可使我们对 Java 线程间协同有更深入的了解。同时通过分析其原 阅读全文
posted @ 2018-05-11 08:23 田小波⊰ 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 1.简介 可重入锁 自 JDK 1.5 被引入,功能上与 关键字类似。所谓的可重入是指,线程可对同一把锁进行重复加锁,而不会被阻塞住,这样可避免死锁的产生。ReentrantLock 的主要功能和 synchronized 关键字一致,均是用于多线程的同步。但除此之外,ReentrantLock 在 阅读全文
posted @ 2018-05-08 08:34 田小波⊰ 阅读(1862) 评论(5) 推荐(3) 编辑
摘要: 1. 简介 是一个接口,AbstractQueuedSynchronizer 中的 内部类实现了这个接口。 声明了一组 的方法,这些方法的功能与 中的 等方法相似。这两者相同的地方在于,它们所提供的 方法均是为了协同线程的运行秩序。只不过,Object 中的方法需要配合 synchronized 关 阅读全文
posted @ 2018-05-07 08:10 田小波⊰ 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 1.简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作。AQS 是很多同步器的基础框架,比如 ReentrantLock、CountDownLatch 和 Semaphore 等都是基于 AQS 阅读全文
posted @ 2018-05-02 08:29 田小波⊰ 阅读(625) 评论(0) 推荐(1) 编辑
摘要: 1.简介 线程池可以简单看做是一组线程的集合,通过使用线程池,我们可以方便的复用线程,避免了频繁创建和销毁线程所带来的开销。在应用上,线程池可应用在后端相关服务中。比如 Web 服务器,数据库服务器等。以 Web 服务器为例,假如 Web 服务器会收到大量短时的 HTTP 请求,如果此时我们简单的为 阅读全文
posted @ 2018-04-18 08:38 田小波⊰ 阅读(844) 评论(2) 推荐(3) 编辑