编程文章

军人优先窗口这一幕,温暖了跨年夜

2019年12月31日在广西钦州东站售票大厅4名海警战士整齐列队朝着售票员行了一个庄严的军礼让这个跨年夜格外温暖当天20时20分,6名海警战士来到钦州东站,准备购买145张车票,因数量大、去往不同地点且多为长途路线,对于售票员而言工作量非常大。20时50分,4号窗口售票员袁圣媛为他们出了30张车票后,就到了车站要求的关窗结账时间。根据车站规定,售票厅各个窗口 …

不允许还有Java程序员不了解BlockingQueue阻塞队列的实现原理

我们平时开发中好像很少使用到BlockingQueue(阻塞队列),比如我们想要存储一组数据的时候会使用ArrayList,想要存储键值对数据会使用HashMap,在什么场景下需要用到BlockingQueue呢?1. BlockingQueue的应用场景当我们处理完一批数据之后,需要把这批数据发给下游方法接着处理,但是下游方法的处理速率不受控制,可能时快时 …

Java队列有哪些?8大常用Java队列总结

什么是队列?队列是一种操作受限的线性表,只允许在表的前端(front)进行删除操作又称作出队,在表的后端进行插入操作,称为入队,符合先进先出(First in First out)的特性。在队尾插入元素叫做入队,对头删除元素叫做出队。比如我们常用的 LinkedList 集合,它实现了Queue 接口,我们可以理解为 LinkedList 就是一个队列。Ja …

python线程之七:线程间通信queue,最全、最明白阐述

queue模块:消息安全地在多线程间交换,实现了多生产者、多消费者队列看源码 queue 模块包含四个实用的类:一、三种队列:1、Queue()、SimpleQueue():先进先出队列2、LifoQueue():先进后出队列3、PriorityQueue():优先级队列,优先级编号,按ascii码表的顺序从小到大输出数据格式:(优先级编号,数据)二、四个类 …

Redisson分布式延时队列 RedissonDelayedQueue

1 先回顾一下Java原生自带的DelayQueue自己实现java.util.concurrent.Delayed这个接口,重写getDelay(计算剩余时间)方法,重写compareTo(比较哪个任务更早过期,计算优先级)方法。调用add()方法添加延迟任务,add()方法里面会调用offer()方法,offer()方法会调用q.offer(),q是Pr …

使用过 Redis 做异步队列么,你是怎么用的?

我使用过 Redis 做异步队列,并且在不同的场景下采用过不同的方式。Redis 因其高性能、易用性和丰富的数据结构,非常适合作为异步队列的解决方案。 以下是我使用 Redis 做异步队列的一些常见方式和经验:1. 基于 List 数据结构的简单队列 (最常用)这是最简单也是最常用的方式,利用 Redis 的 List 数据结构的 LPUSHRPUSH (入 …

一文读懂,Java内置的延迟队列DelayQueue,原理及使用方法

Java的延迟队列(DelayQueue)是一种带有延迟时间的阻塞队列,最初在JDK1.5中引入。它允许我们向队列中添加具有延迟时间的元素,并在元素到期后从队列中获取这些元素。一、实现原理Java 延迟队列的实现基于 priority queue (优先级队列),队列中的元素根据到期时间排序。队列头部是最先到期的元素,每个元素都可以有不同的到期时间。Dela …

RMQ——支持合并和优先级的消息队列

业务背景在一个项目中需要实现一个功能,商品价格发生变化时将商品价格打印在商品主图上面,那么需要在价格发生变动的时候触发合成一张带价格的图片,每一次触发合图时计算价格都是获取当前最新的价格。上游价格变化的因素很多,变化很频繁,下游合图消耗GPU资源较大,处理容量较低。上游生产速度很快,下游处理速度很慢,上下游处理速度存在巨大差距时,我们首先可以想到使用消息队列 …

什么是队列?(Python队列)(python队列函数)

前言上篇文章介绍了 Python 中的多线程。今天来介绍下编程中常会用到的一个数据结构 - 队列。不知道大家是否还记得什么是数据结构呢?在很早很早以前,Python小课堂的初期,讲了许多 Python 原生的数据结构。比如 list、tuple、dict 等。。。既然叫数据结构,实际上就是为了给计算机存储数据用的一种结构体。不同的数据结构都有其不同的特点。那 …

字节跳动3-3大牛力荐!RabbitMQ实战指南:消息队列面试必刷手册

前言RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解。以熟悉的电商场景为例,如果商品服务和订单服务是两个不同的微服务,在下单的过程中订单服务需要调用商品服务进行扣库存操作。按照传统的方式,下单过程要等到调用完毕之后才能返回下单成功,如果网络产生波动等原因使得商品服 …