10年专注英语学习产品质量有保 售后7×24小时服务
24小时咨询热线:4006666666
联系我们
英语学习有限公司
全国免费服务热线:4006666666
地址 :中国·北京
联系人:陈经理
您的位置: 首页>>热门话题>>正文
热门话题

[数据库的并发操作可能带来的问题]处理大量数据后下游方法分支不支持并发

时间:2023-05-27 作者:admin666ss 点击:70次

处理大量数据后,必须先将这些数据发送到下游方法再进行处理,但下游方法的处理速度不受控制,可能快也可能慢。 如果下游方法的处理速度较慢,则当前方法的处理速度会变慢。 在这种情况下,该怎么办呢?

你也许可以考虑使用线程池,但是你需要创建很多线程。 还必须考虑到下游方法分支不支持并发。 对于CPU密集型任务,多线程的处理速度可能比单线程慢。 因为需要频繁的上下文切换。

image [数据库的并发操作可能带来的问题]处理大量数据后下游方法分支不支持并发 热门话题

今天我们来详细分析一下Queue的基础源代码。

抛出异常

返回特定值

暂时屏蔽

输入数据

取数据

取数据

不支持

不支持

这些方法的差异如下。

队列满了之后,将数据放入队列。 add方法抛出异常。 出价方法返回false。 put方法会一直屏蔽。 出价方法阻止指定时间,然后返回false。

如果队列为空,则从队列中检索数据。 remove方法抛出异常,poll方法返回null。 take方法保持阻塞状态,poll方法在指定的时间阻塞并返回null。

工作中使用最多的是offer,Paul屏蔽指定时间的方法。

基于数组实现的阻塞队列是一个有界队列,在创建队列时必须指定其大小。

根据链表实现的阻塞队列默认为无边界队列,创建时可以指定容量大小

在没有缓冲区的块队列中,生产的数据需要立即被消耗

实现高优先级的阻塞队列,基于数据表示为无界队列.

image [数据库的并发操作可能带来的问题]处理大量数据后下游方法分支不支持并发 热门话题

无论是放入数据还是取数据,都从开头开始,向队伍的最后移动。

源代码有一个有趣的设计。 添加元素时,如果到了团队的末尾,接下来从团队的开头开始添加。 等于建立了循环队列。

如下所示。

image [数据库的并发操作可能带来的问题]处理大量数据后下游方法分支不支持并发 热门话题


相关推荐

发表评论