
并发
文章平均质量分 95
架构成长指南
http://my.youkuaiyun.com/dweizhao#
展开
-
并发扣款,如何保证结果一致性
保证在高并发下场景下,对账户余额操作的一致性,是非常重要的,如果代码写的时候没考虑并发一致性,就会导致资损,本人在金融行业干了 8 年多,对这块稍微有点经验,所以这篇聊一下,如何在并发场景下,保证账户余额的一致性原创 2024-01-16 09:19:44 · 1030 阅读 · 0 评论 -
JDK源码-AQS独占锁分析
概述 AQS是Java中除了synchronized锁,其他锁的基类,掌握了其原理,对我们了解其他锁事半功倍。 AQS通过volatile int state和FIFO队列,来实现我们期望的同步需求,子类通过继承同步器并需要实现它的方法来管理其状态,在多线程中对状态的操作必须保证原子性,因此需要用到如下方法 private volatile int state; protected final int getState() { return state; }原创 2020-11-03 22:43:52 · 150 阅读 · 0 评论 -
JDK源码-AQS共享锁分析
概述 我们这里共享锁已ReentrantReadWriteLock读写锁为例来进行说明,写锁是排它锁,读锁是共享锁,如下图 图一,当t1线程获取了读锁后,t2线程也是可以获取到读锁,但是当t3线程获取写锁时,则对写锁进行阻塞。 图二,当t1线程获取到写锁后,t2、t3是没法获取读锁的 下面让我们分析一下读锁的是怎么实现的 ReentrantReadWriteLock共享锁实现分析 实现共享锁主要要实现两个方法,如下 获取锁实现方法 更改state的值返回大于等于0的值,则获取成功,否则获取失败,线程进入原创 2020-11-03 22:42:31 · 234 阅读 · 0 评论 -
ForkJoinPool中submit处理流程
细节不详细介绍,具体可参考http://www.infoq.com/cn/articles/fork-join-introduction。本文主要分析的submit处理流程,示例代码:package com.company.Chapter06; import java.util.concurrent.ExecutionException; import java.util.concurrent原创 2017-06-20 09:02:02 · 5716 阅读 · 0 评论 -
HashMap死循环分析
HashMap死循环介绍点击打开链接,如果在上面还看不明白,请参考此文章。 void resize(int newCapacity) { Entry[] oldTable = table; int oldCapacity = oldTable.length; if (oldCapacity == MAXIMUM_CAPACITY) {原创 2017-06-20 22:11:47 · 425 阅读 · 0 评论 -
Node JS体系架构 - 单线程事件循环
原文地址:http://www.journaldev.com/7462/node-js-architecture-single-threaded-event-loop 原作者:RAMBABU POSA 之前我们已经讨论过Node JS基础,Node JS组件和Node JS安装。今天让我们来了解Node JS的体系架构和单线程事件循环模型。 Node JS体系架构 在开始转载 2017-09-10 14:37:52 · 507 阅读 · 0 评论 -
Redis与Reactor模式
最近看了Redis的设计与实现,这本书写的还不错,看完后对Redis的理解有很大的帮助。另外,作者整理了一份Redis源码注释,大家可以clone下来阅读。 Redis是开源的缓存数据库,由于其高性能而受到大家的欢迎。同时,它的代码量只有6w多行,相比起mysql动则上百万行的代码量,实现比较简单。 Redis中有很多方面都很有意思,在这篇文章中我想探讨的是Redis中的Reactor转载 2017-09-10 14:39:52 · 401 阅读 · 0 评论 -
ThreadPoolExecutor线程的创建与销毁分析
ThreadPoolExecutor线程的创建与销毁分析 固定线程池(newFixedThreadPool) 单例线程池(newSingleThreadExecutor) 缓存线程池(newCachedThreadPool)原创 2017-11-22 14:22:27 · 19413 阅读 · 0 评论