首页 > 其他分享 >队列

队列

时间:2023-07-15 19:00:28浏览次数:27  
标签:请求 队列 阻塞 任务 线程 First

队列(Queue) 是 先进先出 (FIFO,First In, First Out) 的线性表

对头出,队尾进

 

 

 

4.3. 常见应用场景

当我们需要按照一定顺序来处理数据的时候可以考虑使用队列这个数据结构。

  • 阻塞队列: 阻塞队列可以看成在队列基础上加了阻塞操作的队列。当队列为空的时候,出队操作阻塞,当队列满的时候,入队操作阻塞。使用阻塞队列我们可以很容易实现“生产者 - 消费者“模型。
  • 线程池中的请求/任务队列: 线程池中没有空闲线程时,新的任务请求线程资源时,线程池该如何处理呢?答案是将这些请求放在队列中,当有空闲线程的时候,会循环中反复从队列中获取任务来执行。队列分为无界队列(基于链表)和有界队列(基于数组)。无界队列的特点就是可以一直入列,除非系统资源耗尽,比如:FixedThreadPool 使用无界队列 LinkedBlockingQueue。但是有界队列就不一样了,当队列满的话后面再有任务/请求就会拒绝,在 Java 中的体现就是会抛出java.util.concurrent.RejectedExecutionException 异常。
  • Linux 内核进程队列(按优先级排队)
  • 现实生活中的派对,播放器上的播放列表;
  • 消息队列

标签:请求,队列,阻塞,任务,线程,First
From: https://www.cnblogs.com/q540973436/p/17556697.html

相关文章

  • 优先队列(基于二叉树的堆)
    代码出处GoSDKcontainer/heap/heap.goInterface接口定义typeInterfaceinterface{sort.InterfacePush(xinterface{})//addxaselementLen()Pop()interface{}//removeandreturnelementLen()-1.}sort.Interface是自定义排序时需要实现的接......
  • rabbitMQ死信队列和延迟交换机
    一、死信队列(deadLetters)1.死信产生的三种方式(1)消息被消费者拒绝,requeue设置为false message在正常传输中消费者执行了nack或者reject且requeue变为false则将该message存储到死信交换机,再送入死信队列,重新被其他的消费者消费 (2)消息的TTL到期消息的TimeToLive生......
  • java代码向stream消息队列发送消息失败
    如何实现Java代码向Stream消息队列发送消息失败作为一名经验丰富的开发者,您可以教会刚入行的小白如何实现Java代码向Stream消息队列发送消息失败。本文将按照以下流程展示步骤,并提供相应的代码和注释。流程图以下是实现该功能的整体流程图:步骤动作1.创建Stream连接......
  • STM32:rtthread_消息队列
    1消息队列  消息队列是一种常用的线程间异步通讯方式;   消息队列能够接收来自线程或中断中不固定长度的消息,并把消息缓存在自己的内存空间中,供线程间进行异步通讯;  1.1结构体定义//rtconfig.h源码默认注释掉未开启,用到消息队列的时候需要自己开启;#defineRT_USI......
  • 单调栈与单调队列优化 dp
    单调栈将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。例如,栈中自顶向下的元素为\(\{0,11,45,81\}\)。插入元素\(14\)时为了保证单调性需要依次弹出元素\(0,11\),操作后栈变为\(\{14,45,81\}\)。模板......
  • PHP+Redis消息队列
    调用方式$redis=RedisManager::getInstance();$queue=json_encode(['queue_id'=>$queueId,'question'=>$question],256);if($redis->LPush('QA_wecom',$queue))returnResult::Success();单例<?phpnamespaceapp\admin\com......
  • 【数据结构与算法】队列算法题
    TS实现队列interfaceIQueue<T>{//入队enqueue(item:T):void;//出队dequeue():T|undefined;//队首peek():T|undefined;//是否为空isEmpty():boolean;//大小size():number;}classArrayQueue<T>implementsIQueue<T>{......
  • Lamps(STL+双端队列)
     Lamps题面翻译有$n$盏灯,每盏灯有不亮,亮,坏掉3种状态。一开始每盏灯都不亮。第$i$盏灯有属性$a_i,b_i$。每次操作你可以选择一盏灭的灯将其点亮,并得到$b_i$的分数。每次操作结束后,记有$x$盏灯亮着,则所有$a_i\lex$的灯$i$都会损坏(无论是否亮着)。求能得到的最......
  • MQ消息队列
    1、消息队列应用场景消息队列,指保存消息的一个容器,本质是个队列。异步处理,主要目的是减少请求响应时间;应用解耦,使用消息队列后,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系;流量削峰,秒杀活动中,系统峰值流量往往集中于一小段时间,消息队列作为缓冲,可以削弱峰值流......
  • 【技术积累】数据结构中栈与队列及其相关算法【一】
    什么是栈栈是一种特殊的数据结构,它的各个元素按照一定的次序排列,且只能在表的一端(称为栈顶)进行添加和删除数据,这种数据结构遵循后进先出(LIFO)的原则。栈可以简单地理解为一种容器,它在使用时非常方便,因为只需在顶部压入(push)或弹出(pop)元素即可。栈可以直接使用数组或链表等数据结构......