轻松学习多线程
文章平均质量分 77
轻松学习 java 多线程系列
老马啸西风
Github: https://github.com/houbb
Email:houbinbin.echo@gmail.com
展开
-
阻塞队列(1)java 7 种阻塞队列 BlockingQueue 介绍
一些值得思考的问题为什么要有阻塞队列?什么是阻塞队列优缺点适用场景实现思想+源码个人启发阻塞队列什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供.原创 2020-11-08 22:14:19 · 426 阅读 · 0 评论 -
面试经典 ConcurrentHashMap 源码你读过吗?
HashMap 的线程安全性HashMap 是线程不安全的。为了使用线程安全的数据结构,多线程条件下,可使用 Collections.synchronizedMap 方法构造出一个同步Map,或者直接使用线程安全的 ConcurrentHashMap。Java 7基于分段锁的ConcurrentHashMap注:本章的代码均基于JDK 1.7.0_67数据结构Java 7中的ConcurrentHashMap的底层数据结构仍然是数组和链表。与HashMap不同的是,ConcurrentHas原创 2020-10-29 23:38:20 · 511 阅读 · 0 评论 -
java 手写并发框架(一)异步查询转同步的 7 种实现方式
序言本节将学习一下如何实现异步查询转同步的方式,共计介绍了 7 种常见的实现方式。思维导图如下:异步转同步业务需求有些接口查询反馈结果是异步返回的,无法立刻获取查询结果。比如业务开发中我们调用其他系统,但是结果的返回确实通知的。或者 rpc 实现中,client 调用 server 端,结果也是异步返回的,那么如何同步获取调用结果呢?正常处理逻辑触发异步操作,然后传递一个唯一标识。等到异步结果返回,根据传入的唯一标识,匹配此次结果。如何转换为同步正常的应用场景很多,但是有时原创 2020-10-09 21:12:08 · 1121 阅读 · 0 评论 -
轻松学习多线程-13-Active Object 模式
目录目录Active Object 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航Active Object 模式Active Object 模式是接受异步消息的主动对象实际案例类信息概览: 类名 说明 Main.java 方法的总入口 MakerClientThr...原创 2018-04-26 20:20:40 · 40529 阅读 · 0 评论 -
轻松学习多线程-12-Thread Special Storage 模式
目录目录Thread Special Storage 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航Thread Special Storage 模式Thread Special Storage 模式是一种即使只有一个入口,也会为每一个线程分配特有的存储空间的模式。实际案例类信息概览: 类名...原创 2018-04-26 20:10:49 · 40667 阅读 · 0 评论 -
轻松学习多线程-11-Two Phase Termination 模式
目录目录Two Phase Termination 模式模式特点实际案例定义测试实现方式UML & CodeUMLCode系列导航Two Phase Termination 模式Two Phase Termination 模式表示先执行完终止处理,再终止线程的模式。模式特点安全的终止线程必定会进行线程终止发出请求后...原创 2018-04-26 19:06:22 · 40705 阅读 · 0 评论 -
轻松学习多线程-10-Future 模式
目录目录future 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航future 模式future 模式类似于一张提货单。future 意思就是未来、期货(金融领域)。实际案例类信息概览: 类名 说明 Main.java 方法的总入口 FutureData.ja...原创 2018-04-26 07:35:29 · 40808 阅读 · 0 评论 -
轻松学习多线程-09-Worker Thread 模式
目录目录Worker Thread 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航Worker Thread 模式Worker Thread 模式就是没有工作就一直等待,工作来了就进行处理。实际案例类信息概览: 类名 说明 Main.java 方法的总入口 Cli...原创 2018-04-25 18:47:17 · 41146 阅读 · 0 评论 -
轻松学习多线程-08-Thread Per Message 模式
目录目录Thread Per Message 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航Thread Per Message 模式Thread Per Message 模式是指为每个请求/命令分配一个新的线程,由这个线程来进行处理。实际案例类信息概览: 类名 说明 Mai...原创 2018-04-25 18:39:55 · 40711 阅读 · 0 评论 -
轻松学习多线程-07-Read Write Lock 模式
目录目录Read Write Lock 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航Read Write Lock 模式Read Write Lock 模式就是将内容的读取和写入分开进行处理。因为数据的互斥需要牺牲性能,读的时候可以互不影响,但是读的时候禁止写。实际案例类信息概览: ...原创 2018-04-25 18:29:51 · 40741 阅读 · 0 评论 -
轻松学习多线程-06-Producer Consumer 模式
Producer Consumer 模式Producer Consumer 模式是指一个负责生产,一个负责消费。核心是生产者安全地将数据交给消费者。实际案例类信息概览: 类名 说明 Main.java 方法的总入口 ConsumerCakeThread.java 消费蛋糕的线程 Table.java 放置蛋糕的桌子 Bl...原创 2018-04-25 18:21:28 · 40745 阅读 · 0 评论 -
轻松学习多线程-05-Balking 模式
目录目录Balking 模式实际案例定义测试实现方式UML & CodeUMLCode系列导航Balking 模式Balking 模式是指如果不适合执行这个操作,或者没必要执行这个操作,就停止操作,直接返回。实际案例类信息概览: 类名 说明 Main.java 方法的总入口 SaveTh...原创 2018-04-25 18:10:40 · 40673 阅读 · 0 评论 -
轻松学习多线程-04-Guarded Suspension 模式
Guarded Suspension 模式Guarded Suspension 模式通过让线程等待保证线程的安全性。实际案例类信息概览: 类名 说明 Main.java 方法的总入口 ClientThread.java 发送请求的类 ServerThread.java 接受请求的类 RequestQueue.java ...原创 2018-03-20 20:33:42 · 39678 阅读 · 0 评论 -
轻松学习多线程-03-Immutable 模式
Immutable想破坏也破坏不了。 Immutable 可以确保实例状态不发生改变,访问这类实例时不需要执行耗时的互斥处理,可以提升性能。实际案例定义Person.java不可变对象类/** * 不可变类 * * @author bbhou * @version 1.0.0 * @since 1.0.0 */public final class Person { priv原创 2018-03-01 17:09:57 · 39611 阅读 · 0 评论 -
轻松学习多线程-02-Single Threaded Execution 模式
Single Threaded Execution这座桥,一次只能过一个人。情景引入使用程序模拟三个人频繁通过一个只允许通过一个人的门。 每次有人通过,人数统计便会增加。 每次通过,都会校验通过者的信息。普通方式定义Gate.java定义接口。/** * 接口 * @author bbhou */public interface Ga...原创 2018-02-28 10:42:02 · 39647 阅读 · 0 评论 -
轻松学习多线程-01-基础知识
基础知识下面是一些关于 java 线程的基础知识博客。需要补充知识的可以浏览一下,已经熟悉的可以直接跳过。线程-001-线程简介线程-002-基本的线程机制线程-003-线程的同步与锁线程-004-线程间的协作及状态迁移多线程代码的评定标准对于代码的评定不应该停留于好坏,而应该指出好在哪里?或者坏在哪里?下面简单地谈一下 Doug Lea 的评价标准。 如...原创 2018-02-26 17:05:40 · 39674 阅读 · 0 评论 -
轻松学习多线程-00-序章
目录导航轻松学习多线程-00-序章轻松学习多线程-01-基础知识轻松学习多线程-02-Single Threaded Execution 模式轻松学习多线程-03-Immutable 模式轻松学习多线程-004-Guarded Suspension 模式轻松学习多线程-05-Balking 模式轻松学习多线程-06-Producer Consumer 模式轻松学习多...原创 2018-02-26 13:56:53 · 43180 阅读 · 0 评论