
多线程
文章平均质量分 79
L-960
后端开发 java、python、.net
展开
-
高并发之使用RateLimiter、Semaphore对访问资源进行限流
限流是保护高并发系统的三把利器之一,另外两个是缓存和降级。限流在很多场景中用来限制并发和请求量,比如说秒杀抢购,保护自身系统和下游系统不被巨型流量冲垮等。限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务或进行流量整形。...原创 2022-07-18 16:54:19 · 4454 阅读 · 0 评论 -
java中常用的阻塞队列与非阻塞队列
阻塞队列可以阻塞,非阻塞队列不能阻塞,只能使用队列wait(),notify()进行队列消息传送。而阻塞队列当队列里面没有值时,会阻塞直到有值输入,输入也一样,当队列满的时候,会阻塞,直到队列不为空。BlockingQueue 继承了 Queue 接口,是队列的一种。阻塞队列(BlockingQueue)是一个在队列基础上又支持了两个附加操作的队列。注意:阻塞队列是线程安全的在ThreadPoolExecutor中就使用的阻塞队列来实现线程的不结束,以达到线程复用。add(E e):添加一个元素,添加成原创 2022-07-13 10:55:50 · 1208 阅读 · 0 评论 -
java并发多线程通信—wait()、notify()、notifyAll()、join()
wait() ,notifyAll(),notify() 三个方法都是Object类中的方法。假如有一个对象锁Documentwait(): 调用该方法的线程进入WAITING状态,并将当前线程放置到对象的等待队列,只有等待另外线程的通知(notify)或被中断才会返回,需要注意,调用wait()方法后,会释放对象的锁。notify(): 通知一个在对象上等待的线程,由WAITING状态变为BLOCKING状态,可以参考下图,从等待队列移动到同步队列,等待CPU调度获取该对象的锁,当该线程获取到了对象的锁后原创 2022-07-11 11:49:17 · 444 阅读 · 0 评论 -
Tomcat线程池分析
tomcat多线程转载 2022-06-08 16:33:36 · 2360 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor详解和CountDownLatch的使用
多线程原创 2022-06-08 14:32:43 · 2520 阅读 · 1 评论 -
BIO、NIO、AIO分别是什么
原文:https://mp.weixin.qq.com/s/sxqxq7d1jLGxe8nDq7WWKA文章目录一. BIO同步阻塞式原理解析1.简介2.BIO缺点3.BIO模型图4.Acceptor二. NIO同步非阻塞IO1.简介2.NIO--优化BIO的核心3.NIO模型图4.Reactor模型三. AIO异步非阻塞IO1.简介2.AIO模型图四. 3个模型的一些问题1 同步阻塞--为什么说BIO是同步阻塞的呢?2 同步非阻塞--为什么说NIO为啥是同步非阻塞?3 异步非阻塞--为什么说AIO是异步原创 2022-04-11 13:36:33 · 637 阅读 · 0 评论 -
springboot多线程超时问题排查
问题:项目中的异步插入es代码出现了超时的问题。解决:setQueueCapacity的数量调小即可springboot的多线程配置类@Configuration@EnableAsync // 开启异步public class ThreadConfig implements AsyncConfigurer { // ThreadPoolTaskExecutor的处理流程 // 当池子大小小于corePoolSize,就新建线程,并处理请求 // 当池子大小等于corePo原创 2021-10-26 18:38:16 · 2779 阅读 · 0 评论 -
多线程更新一张表的同一个字段的并发问题解决思路
上锁1 同步代码块synchronized ()2 乐观锁在表里增加个字段,版本号标识字段每次更新前先从数据库里获取这个标识的值,然后更新时要同步更新标识+1,并且增加更新条件版本号=查询出来的值。因为更新时每次只可能有一个线程更新到数据,等到另外一个线程再去更新数据的时候版本号已经+1了,所以会更新失败,重新获取版本号再走更新流程,这样就解决了多线程并发更新被覆盖的问题。而且乐观锁机制避免了长事务中的数据库加锁开销(多个线程操作过程中,都没有对数据库数据加锁),大大提升了大并发量下的系统原创 2021-11-12 11:03:12 · 2929 阅读 · 0 评论 -
线程安全的Collection相关类介绍和使用
原文1:https://blog.youkuaiyun.com/lkp1603645756/article/details/85016035原文2:https://www.cnblogs.com/shamao/p/11065885.html目录1 引言2 并发包下的集合类介绍3 线程安全集合的特性非阻塞队列(队列无数据,操作队列产生异常或返回null,不具备等待/阻塞的特色)阻塞队列(取空队列需要等待直到有元素,塞满队列需要等待直到有空间)什么是CopyOnWrite容器4 线程安全类的详细介绍与使用CopyOnW原创 2021-05-25 10:47:39 · 244 阅读 · 0 评论