• 2024-11-1904高可用高并发(D1_高并发 - D2_限流)
    目录学习前言一、限流简介1.算法2.分类2.1.应用级-单机2.2.分布式二、限流方案方案一:令牌桶方式(TokenBucket)举例:GuavaRateLimiter-平滑突发限流(SmoothBursty)举例:GuavaRateLimiter-SmoothWarmingUp方案二:漏桶方式令牌桶和漏桶对比方案三:计数器方
  • 2024-11-10一文彻底弄懂JUC工具包的Semaphore
    Semaphore是Java并发包(java.util.concurrent)中的重要工具,主要用于控制多线程对共享资源的并发访问量。它可以设置“许可证”(permit)的数量,并允许指定数量的线程同时访问某一资源,适合限流、资源池等场景。下面从源码设计、底层原理、应用场景、以及与其它JUC工具的对比来详
  • 2024-09-12A Walkthrough Using Acquire and Release Fences
    We’lltaketheexamplefrommypreviouspostandmodifyittouseC++11’sstandaloneacquireandreleasefences.Here’stheSendTestMessagefunction.Theatomicwriteisnowrelaxed,andareleasefencehasbeenplacedimmediatelybeforeit.voidSen
  • 2024-09-10Java并发编程实战 11 | 线程活跃问题(死锁,活锁和饥饿)
    并发应用程序的“活跃度”指的是它及时执行并完成任务的能力。活跃性问题则是指程序无法最终得到预期的运行结果。相比于线程安全问题,存活性问题可能会导致更严重的后果。例如,死锁会使程序完全停滞,导致无法继续执行。常见的活跃性问题包括以下三种:1.死锁(Deadlock)死锁发
  • 2024-09-01Magnet Acquire 2.71 Windows - 适用于智能手机和计算机的数字取证采集工具
    MagnetAcquire2.71Windows-适用于智能手机和计算机的数字取证采集工具DigitalForensicSoftware请访问原文链接:https://sysin.org/blog/magnet-acquire/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org免费工具MagnetAcquireMagnetAcquire可以让数字取证
  • 2024-04-29Python高阶--Condition
    Condition条件触发importthreadingimporttimeclassProducer(threading.Thread):#生产者函数defrun(self):globalcountwhileTrue:ifcon.acquire():#当count小于等于1000的时候进行生产ifcount>1000:con.wait()else:count=count+100msg=self.name
  • 2023-10-29详述Java内存屏障,透彻理解volatile
    一般来说内存屏障分为两层:编译器屏障和CPU屏障,前者只在编译期生效,目的是防止编译器生成乱序的内存访问指令;后者通过插入或修改特定的CPU指令,在运行时防止内存访问指令乱序执行。下面简单说一下这两种屏障。1、编译器屏障编译器屏障如下:asmvolatile("":::"memory")内联汇
  • 2023-10-26Python threading实现多线程 提高篇 线程同步,以及各种锁
    本文主要讲多线程的线程之间的资源共享怎么保持同步。多线程基础篇见,Pythonthreading实现多线程基础篇Python的多线程,只有用于I/O密集型程序时效率才会有明显的提高,如文件/输入输出/socket网络通信/http通讯等待。对于计算密集型程序一般采用多进程,这里不多讲。一、多线程的
  • 2023-09-26递归锁
    递归锁 了解 特点:可以被连续的acquire和release但是只能被第一个抢到这把锁执行上述操作他的内部有一个计数器没acquire一次技术加一每realse一次技术减一只要技术不为0那么其他人都无法抢到该锁 将:mutexA=Lock()mutexB=Lock()换成mutexA=mutexB=RLock()信号两
  • 2023-08-24锁、递归锁、条件变量、信号量代码解析(Lock, RLock, Condition, Semaphore)
    锁Lock>>>help(type(threading.Lock()))Helponclasslockinmodule_thread:classlock(builtins.object)锁对象是一个同步原语。Alockobjectisasynchronizationprimitive.Tocreatealock,callthreading.Lock().Methodsare:acqui
  • 2023-08-2220230615 java.lang.invoke.VarHandle
    介绍java.lang.invoke.VarHandlepublicabstractclassVarHandleimplementsConstable在并发编程和底层内存访问上提供了一种更为灵活、安全和高效的方式APIget,set保证原子性getVolatile,setVolatile保证可见性getOpaque,setOpaque保证有序性op
  • 2023-08-14Python中threading模块 lock、Rlock的使用
    一、概述在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock、Rlock、Semaphore、Event、Condition用来保证线程之间的同步,后者保证访问
  • 2023-07-18MIT 6.S081 Multiprocessors and locking
    whylock防止多核并行运行下的racecondition导致的错误。内核中的数据是典型的concurrently-accessed的数据。raceconditionandhowthelockavoiditAraceconditionisasituationinwhichamemorylocationisaccessedconcurrently,andatleastoneaccess
  • 2023-07-07【pyhton】条件变量Condition
    条件变量Conditionacquire — 线程锁,注意线程条件变量Condition中的所有相关函数使用必须在acquire /release 内部操作;release —释放锁,注意线程条件变量Condition中的所有相关函数使用必须在acquire /release 内部操作;wait(timeout) — 线程挂起(阻塞状
  • 2023-06-18Redisson分布式锁和同步器详解-官方原版
    一、锁定基于Redis的Java分布式可重入锁对象,并实现了锁接口。如果获取锁的Redisson实例崩溃,则此类锁可能会在获取状态下永久挂起。为了避免这种Redisson维护锁watchdog,当锁持有者Redisson实例处于活动状态时,它会延长锁的到期时间。默认情况下,lockwatchdog超时为30秒,可以通过Config
  • 2023-05-31如何使用Go中的Weighted实现资源管理
    1.简介本文将介绍Go语言中的Weighted并发原语,包括Weighted的基本使用方法、实现原理、使用注意事项等内容。能够更好地理解和应用Weighted来实现资源的管理,从而提高程序的稳定性。2.问题引入在微服务架构中,我们的服务节点负责接收其他节点的请求,并提供相应的功能和数
  • 2023-05-31如何使用Go中的Weighted实现资源管理
    1.简介本文将介绍Go语言中的Weighted并发原语,包括Weighted的基本使用方法、实现原理、使用注意事项等内容。能够更好地理解和应用Weighted来实现资源的管理,从而提高程序的稳定性。2.问题引入在微服务架构中,我们的服务节点负责接收其他节点的请求,并提供相应的功能和数
  • 2023-04-15python3多线程-线程同步
    1、介绍多线程同时访问和操作同一资源,可能会造成异常。解决办法是对资源进行限制,同一时间只允许一个线程进行访问和操作。这里的资源,一般是指方法、函数或者代码块。即由多行代码组成,在逻辑上属于不可切分的操作。2、线程同步使用Thread对象的Lock和Rlock可以实现简单
  • 2023-03-12并发编程-信号量
    importrandomimporttimefromthreadingimportThread,Semaphoresm=Semaphore(5)'''semaphore信号量可以通过内置计数器来控制同时运行线程的数量每当调用
  • 2023-01-03【Python】爬虫笔记-多线程&线程池
    1.基本概念1.1并发和并行并发和并行的概念并不是对立的,并发(concurrent)对应的是顺序(sequential),并行(parallel)对应的是串行(serial)。顺序:上一个开始执行的任务完成后,当前
  • 2022-11-17图解ReentrantLock底层公平锁和非公平锁实现原理
  • 2022-11-16(笔者推荐)【Java权威指南】「官方文档-中英互译」AQS的源码注释分析,贯穿总体核心流程!
    前提说明本文主要针对于Java官方文档中的先关的官方注释进行中英文互译,保证了源码坐着的设计思路以及相关知识技能介绍分析等,本文主要进行介绍AQS的源码官方注释的含义介绍,
  • 2022-10-29Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend)问题的解决
    Ubuntu中Unabletoacquirethedpkgfrontendlock(/var/lib/dpkg/lock-frontend)问题的解决按顺序执行直到sudodpkg--configure-a结束就可以了
  • 2022-10-05Spring 项目启动测试的时候错误:Unable to acquire JDBC Connection
    我们在使用SpringJPA测试项目启动的时候,得到下面的错误:UnabletoacquireJDBCConnection  问题和解决出现这个问题的主要原因是我们在资源文件夹中还有一个