java
文章平均质量分 85
阿德小仔
你得先看中你自己,否则别人就认为你一钱不值。
展开
-
限流的场景和应用
1. 防止流量过大导致系统崩溃:当流量突然增大时,限流可以确保系统不会因为过大的流量导致资源耗尽和系统崩溃。2. 防止恶意请求:限流可以用来针对一些恶意请求进行限制,避免这些请求对系统造成损害。3. 避免线程池耗尽:当请求很多时,后端的线程池可能会耗尽,导致许多请求得不到响应。加上限流可以避免这种情况的发生。4. 防止缓存击穿:当缓存失效时,后端系统会接收大量的请求。限流可以确保后端系统不会因为缓存失效而被打垮。原创 2023-06-25 15:36:34 · 921 阅读 · 0 评论 -
什么是 CAS
CAS (Compare And Swap)指比较并交换。CAS算法 CAS(V,E,N)包含3个参数,V表示要更新的变量,E表示预期的值,N表示新值。在且仅在V值等于E值时,才会将V值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后CAS返回当前V的真实值。原创 2022-10-10 22:58:41 · 179 阅读 · 0 评论 -
HashMap底层原理
HashMap 基于键 HashCode 值唯一标识一条数据,根据hashCode定位到数组的具体下标,然后对存储的链表进行遍历查找到需要的数据,复杂度O(n).其中链表中每个元素都是一个Entry实例,包换4个属性,key,value,hash,next指向。为了减小链表遍历的开销,java8改成数组+链表+红黑树的方式,当链表元素超过8后会将链表结构转化成红黑树,提高查询效率。时间复杂度为O(logN),长度小于8的话会重新转化成链表。原创 2022-10-18 16:56:52 · 283 阅读 · 0 评论 -
java中的锁
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。转载 2022-10-14 23:40:19 · 115 阅读 · 0 评论 -
java并发关键字
CountDownLatch类位于java.util.concurrent包下,是一个同步工具类 ,允许一个或多个线程一直等待其他线程的操作执行完后再执行相关操作。CountDownLatch 基于线程计数器来实现并发访问控制,主要用于主线程等待其他子线程都执行完毕后执行相关操作。原创 2022-10-11 11:27:15 · 315 阅读 · 0 评论 -
什么是AQS
AQS ( Abstract Queued Synchronizer )是一个抽象的队列同步器,通过维护一个共享资源状态( Volatile Int State )和一个先进先出( FIFO )的线程等待队列来实现一个多线程访问共享资源的同步框架。原创 2022-10-10 23:35:06 · 27739 阅读 · 1 评论 -
Java阻塞队列
队列是种只允许在表的前端进行删除操作,而在表的后端进行插入操作的线性表。阻塞队列和一般队列的不同之处在于阻塞队列是“阻塞”的,这里的阻塞指的是操作队列的线程的一种状态。原创 2022-10-10 17:52:53 · 906 阅读 · 0 评论 -
如何排查java程序导致的cpu和内存过高异常
如何排查java程序引起的cpu和内存过高异常原创 2022-10-09 14:32:40 · 8145 阅读 · 0 评论
分享