Singleton

单例是最常见的设计模式,如何实现单例呢?如果实现线程安全的单例呢?本文将展示单例的五种写法,比茴香豆还多一种。

阅读全文

多线程高级篇(1) 线程实现

本文探究Java线程的底层实现,包括windows平台和Linux平台下的线程理论、原理和基本实现。

阅读全文

多线程中级篇(3) Java内存模型

什么是Java内存模型?Java内存模型包含哪些内容,又能解决哪些问题?本文将引出内存可见性和指令重排序的概念,并阐述由此引发的多线程并发问题和解决方案。

阅读全文

多线程中级篇(2) 线程中断

我们在基础篇的线程介绍里面已经提到过如何中断线程,本文将详细展开,描述其中的细节,让大家对线程中断有一个更深刻的理解。

阅读全文

多线程基础篇(4) 线程同步

我们已经了解如何创建一个线程,以及如何交给线程池去调度,接下来看看线程之间同步的问题。本文详细描述了如何使用synchronized和wait/notify实现线程同步。最后通过生产者-消费者的例子进行了深入讨论。

阅读全文

多线程中级篇(1) 线程状态

一个新线程启动后,从开始运行一直到最后任务执行完成销毁这个线程,在整个线程生命周期中有哪几个状态,各个状态之间如何流转,本文将给出详细解释。

阅读全文

多线程基础篇(3) ThreadPoolExecutor

理解了ThreadPoolExecutor类的各个参数和处理流程也就理解了线程池机制。核心线程数、最大线程数、排队策略和饱和策略是最重要的参数,其中排队策略决定了处理流程。通过测试代码可以很好的验证各种参数设置条件下线程池的处理策略。

阅读全文

多线程基础篇(2) 线程池

Executor和ExecutorService为我们提供了线程异步执行的接口。其中比较重要的是submit()和shutdown(),分别实现任务的提交和线程池的关闭。

阅读全文

多线程基础篇(1) 线程

本文介绍并发中最基本的概念-线程,包括如何创建、启动和终止一个线程,以及对线程一些基本属性的解释。

阅读全文

RocketMQ(3) 开发

了解RocketMQ的基本知识以后,我们来看一看如何编写发送消息和收取消息的代码。先展示如何直接调用rocketmq-client模块实现,再展示如何使用spring boot starter来实现。

阅读全文