Category archives: Java

深度解析Java线程池的异常处理

在逛同性交友网站GitHub的时候看到一个解析线程池异常处理的Issue,正好是曾经自己遇到过的问题。在此记录下来,并将其拓展到其他类型的线程池。

本文因篇幅省略了诸多AQS相关知识,可以查看博客中另一篇博文 一行一行源码分析清楚AQS 以保证清楚理解本文。
Read more

LockSupport.park 与wait用法示例

自Java1.6引入的LockSupport为开发者提供新的阻塞、唤醒线程的原语方法,只是平时都是使用已经封装好的各种Lock、Latch、Synchronizer并不常见到。在学习过程中看到这篇对比LockSupport.park() 方法和wait() 方法的示例Java多线程系列–“JUC锁”07之 LockSupport 来自skywang12345是的引起自己诸多疑惑,便打算按照编码实践一番。 Read more

一行一行源码分析清楚AQS[转]

在分析java并发包java.util.concurrent源码的时候,少不了需要了解AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是java并发包的基础工具类,是实现ReentrantLock、CountDownLatch、Semaphore、FutureTask等类的基础。

Google一下AbstractQueuedSynchronizer,我们可以找到很多关于AQS的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的细节说清楚。

本文将从ReentrantLock的公平锁源码出发,分析下AbstractQueuedSynchronizer这个类是怎么工作的,希望能给大家提供一些简单的帮助。 Read more

理解Java内存模型笔记

在并发编程网上看到这个深入理解java内存模型系列文章,文章一个系列图文并茂讲得都很不错,让我了解到了很多关于内存可见性、内存屏蔽指令一些知识。在此结合自己对《深入理解Java虚拟机》的一些理解对文章重点基础知识做个笔记。注:文章基于JSR-133内存模型

Java内存模型

Read more

SpringBoot+Mybatis:Mapper注入Could not autowire 问题解决

在使用Springboot+Mybatis开发项目时遇到如下的错误(提示Could not autowire)。虽然能够编译运行无误,但看着让人很是郁闷:

Read more