• [java并发编程]基于信号量semaphore实现限流器

    [TOC] 一、什么是信号量 “信号量”在编程术语中使用单词semaphore,那什么是“信号量”?信号量就好比你家厨房入口架子上摆了三把锅。 如果你的孩子热奶拿走一把,你的...
    JAVA   2022.05.17 08:06
  • java并发编程-StampedLock高性能读写锁

    [TOC] 一、读写锁 在我的[《java并发编程》]上一篇文章中为大家介绍了《ReentrantLock读写锁》,ReentrantReadWriteLock可以保证最多同时有一个线程在写数据,或者可以同...
    JAVA   2022.05.16 08:21
  • 「java并发编程」ReentrantLock 可重入读写锁

    一、ReentrantLock可重入锁 可重入锁ReentrantLock 是一个互斥锁,即同一时间只有一个线程能够获取锁定资源,执行锁定范围内的代码。这一点与synchronized 关键字十分相似...
    JAVA   2022.05.15 08:16
  • 并发编程系列之Lock锁可重入性与公平性

    一、相似之处:Lock锁 vs Synchronized 代码块 Lock锁是一种类似于synchronized 同步代码块的线程同步机制。从Java 5开始java.util.concurrent.locks引入了若干个Lock锁的...
    JAVA   2022.05.13 08:20
  • 并发编程之volatile与JMM多线程内存模型

    一、通过程序看现象 在开始为大家讲解Java 多线程缓存模型之前,我们先看下面的这一段代码。这段代码的逻辑很简单:主线程启动了两个子线程,一个线程1、一个线程2。线程1...
    JAVA   2022.05.12 07:50
  • 并发编程之临界区\阻塞\非阻塞\死锁\饥饿\活锁

    本文介绍并发编程中的若干概念,实际上在笔者之前的文章中,已经介绍过很多概念。比如:并发与并行、同步与异步、锁与信号量等等。,本文计息介绍一些相对深入一些的概念...
    JAVA   2022.05.11 08:18
  • 异步任务处理系统,如何解决业务长耗时、高并发难题?

    作者:不瞋 (阿里云 Serverless 技术负责人) 当我们构建一个应用,总是希望它是响应迅速,成本低廉的。而在实际中,我们的系统却面临各种各样的挑战,例如不可预测的流...
    阿里云 性能测试 设计模式   2022.05.06 16:44
  • Redis实现并发阻塞锁方案

    由于用户同时访问线上的下订单接口,导致在扣减库存时出现了异常,这是一个很典型的并发问题,本篇文章为解决并发问题而生,采用的技术为Redis锁机制+多线程的阻塞唤醒方法...
    JAVA Redis   2022.04.28 15:34
  • 7000字+24张图带你彻底弄懂线程池

    大家好。今天跟大家聊一聊无论是在工作中常用还是在面试中常问的线程池,通过画图的方式来彻底弄懂线程池的工作原理,以及在实际项目中该如何自定义适合业务的线程池。 一、什么是线程池 线程池其实是一种池化的技术的实现,池化技术的核心思想其实就是实现资源的一个复用,避免资源的重复创建和销毁带来的性能开销。在线 ...
    并发   2022-05-21 13:50
  • 一个测试记录:利用分段锁来处理并发情况下的资源竞争问题

    别人的经验,我们的阶梯! 在开发中经常遇到多个并发执行的线程,需要对同一个资源进行访问,也就是发生资源竞争。 在这种场景中,一般的做法就是加锁,通过锁机制对临界区进行保护,以达到资源独占的目的。 这篇文章主要描述的就是使用分段锁来解决这个问题,说起来很简单:就是把锁的粒度降低,以达到资源独占、最大程 ...
    C语言   2022-05-22 13:14
  • 解决库存扣减及订单创建时防止并发死锁的问题

    解决库存扣减及订单创建时防止并发死锁的问题 在我们日常开发的过程可有会遇到以下错误 事务(进程 ID 82)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务 很多开发人员对于这个问题的排查起来是比较困难的,而生产生的原因多种多样,很多人认是因为表中的数据太多了同时操作的人多 ...
    hisql HiSql   2022-05-26 17:20
  • 一文带你看懂Java中的Lock锁底层AQS到底是如何实现的

    前言 相信大家对Java中的Lock锁应该不会陌生,比如ReentrantLock,锁主要是用来解决解决多线程运行访问共享资源时的线程安全问题。那你是不是很好奇,这些Lock锁api是如何实现的呢?本文就是来探讨一下这些Lock锁底层的AQS(AbstractQueuedSynchronizer)到 ...
    Java 并发   2022-05-27 13:11
  • Java 线程创建与常用方法

    ## 进程与线程的区别 - 进程基本上相互独立的,而线程存在于进程内,是进程的一个子集 - 进程拥有共享的资源,如内存空间等,供其内部的线程共享 - 进程间通信较为复杂 - 同一台计算机的进程通信称为 IPC(Inter-process communication) - 不同计算机之间的进程... ...