并发编程
文章平均质量分 90
zxcodestudy
Get busy living or get busy dying
展开
-
并发AQS同步器
一.AQS容器架构AQS同步器拥有首节点(head)和尾节点(tail)。同步队列的基本结构如下: 队列的基本操作有:未获取到锁的线程加入同步队列(同步队列设置尾节点): 同步器AQS中包含两个节点类型的引用:一个指向头结点的引用(head),一个指向尾节点的引用(tail),当一个线程成功的获取到锁(同步状态),其他线程无法获取到锁,而是被构造成节点(包含当前线程,等待状态)加入到同步队原创 2017-07-10 23:02:17 · 456 阅读 · 0 评论 -
高并发下的抽奖优化
一. 项目思考由于项目发起了一个抽奖活动,发起活动之前给所有用户发短信提示他们购买了我们的产品有抽奖权益。然后用户上来进入抽奖页面点击爆增,过了一会儿页面就打不开了。后面查看了下各种日志,发现了瓶颈在数据库,由于读写冲突严重,导致响应变慢,有不少连接都超时了。后面看到监控和日志留下的数据,发现负责抽奖的微服务集群qps暴涨12倍,db的qps也涨了10倍。这很明显是一个高并发下如何摆脱数据库读写,I原创 2016-12-20 00:17:58 · 16168 阅读 · 4 评论 -
【基本功】不可不说的Java“锁”事
前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐...转载 2018-11-24 21:42:51 · 165 阅读 · 0 评论 -
高并发编程知识体系
1.问题1、什么是线程的交互方式?2、如何区分线程的同步/异步,阻塞/非阻塞?3、什么是线程安全,如何做到线程安全?4、如何区分并发模型?5、何谓响应式编程?6、操作系统如何调度多线程?2.关键词同步,异步,阻塞,非阻塞,并行,并发,临界区,竞争条件,指令重排,锁,amdahl,gustafson3.全文概要上一篇我们介绍分布式系统的知识体系,由于单机的性能...转载 2019-04-14 13:11:11 · 250 阅读 · 0 评论