
高并发编程
文章平均质量分 60
阿木Coding
追求无止境
展开
-
Promise模式
Promise模式 一种异步编程的模式,使得我们可以先开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,不用去等该任务执行完成可以执行其他操作,在生活中我们也经常会运用其中的思想,比如我们去一家小吃店点了一份鸭血粉丝和一份小笼包,会发一份凭据,鸭血粉丝比较快做好,我们可以不用等待小笼包做好,先吃鸭血粉丝,等到吃的差不多了,小笼包也可能出笼了,我们可以凭着发票换取小笼包。 Promise模式介绍 Promise模式主要是由4个部分构成: Promisor 负责对外暴露可以返回Promise对象原创 2021-11-04 20:05:52 · 431 阅读 · 0 评论 -
Guarded Suspension模式
Guarded Suspension模式 顾名思义保护性暂停模式,可以大大降低多线程获取锁时锁冲突带来的性能开销,当线程访问某个数据时,发现无法请求到,此时就会要求线程在进行访问。暂时挂起,保证实例的安全性,等满足条件再去请求。 比如我们如果要开发一个服务器,处理来自客户端的请求。为了不丢失请求,要维护一个缓冲区,将客户端的请求先储存至缓冲区,然后从缓冲区取出请求执行,如果缓冲区没有请求,就等待直到有新的请求过来。 public class Request { private String name;原创 2021-11-03 18:27:34 · 113 阅读 · 0 评论 -
AQS你真的学会了,深入源码分析
简介 AQS:原创 2020-09-21 21:25:51 · 114 阅读 · 0 评论 -
volatile关键字和java内存模JMM
为了深入了解并行机制,java内存模型JMM是很有必要了解的。JMM的关键技术点都是围绕着多线程的原子性、可见性和有序性来建立的。 原子性:是指一个操作不可中断。在多个线程执行时,一个操作一旦开始,就不会被其他线程干扰。 可见性:是指当一个线程修改了某一个共享变量的值时,其他线程是否可以立即知道这个修改。 有序性:对于一个程序而言,总是习惯认为代码从前往后依次执行的。但是在并发时,程序执行可能会出现乱序,程序在执行时,可能会出现指令重排,重排后的指令与原指令的顺序未必一致。 tips:指令重排序有一个前提,原创 2020-05-22 22:13:11 · 164 阅读 · 0 评论 -
线程阻塞工具类:LockSupport
什么是LockSupport LockSupport是一个非常方便的使用线程阻塞工具,可以在线程内任意位置让线程阻塞。与Thread.suspend()方法相比,弥补了由于resume()方法发生异常导致线程无法继续执行。也不需要像Object.wait()方法,先获得某个对象的锁。 LockSupport的静态方法park()可以阻塞当前线程,类似还有parkNanos()、parkUntil()等方法。主要是通过LockSupport.park()和LockSupport.unpark()方法,来实现线原创 2020-05-18 22:25:33 · 217 阅读 · 0 评论