队列模型

队列在现实生活中是很常见的一种东西 。

产生队列的原因是 提供服务的速度 ,赶不上 需求的速度。

比如去某快餐吃饭,就需要排队,因为点单的人太多,而服务的人太少。

在程序设计中,也会遇到这种情况。

比如现在有一个发短信的任务 。 有10W条短信需要发, 而短信通道只支持每小时1W 条。

那么 有一条队列 就可以减轻人很多事情。

这是队列就像弹簧,还控制 进入的速度。

有10个人同时需要发短信 。他们不用各自考虑 ,当前短信的发送情况。 只需要把自己需要发的短信条数 扔到这个队列中。

在队列的另一端, 短信服务端 来队列中取短信去发送。

它自然可以按照自己的能力来 控制这种速度。

这样两边都面向队列。 相互看不见,就少了很多麻烦 。有时候,也就省事了。

时间: 2024-10-09 20:00:26

队列模型的相关文章

阻塞队列模型和线程池

阻塞队列模型介绍 阻塞队列模型和线程池息息相关,因此本篇博客先介绍阻塞队列的相关知识.如下图所示: 首先我们来说,什么是Queue,然后在谈什么是BlockingQueue. 那么什么是Queue呢?一句话,就是一端进,另一端出,这样就形成了First In , First Out,即先进先出.而BlockingQueue只不过是在Queue的基础上进行了2个附加操作而已:如果Queue空,那么Out线程阻塞,如果Queue满,那么In线程阻塞. 理解了上面的Queue/BlockingQueu

简单的动画队列模型

给新手写了一个便于理解的动画链式 var anmin = {} anmin.list = []; anmin.run = function(nextfun){ anmin.list.push(nextfun); //加入动画正在触发 (function fire() { if (!anmin.fireing) { var onceRun = anmin.list.shift() if (onceRun) { anmin.fireing = true; onceRun(function() { a

Android 的消息队列模型

Android 的消息队列模型 Android是参考Windows的消息循环机制来实现Android自身的消息循环的.    Android通过Looper.Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环).     Android系统中,Looper负责管理线程的消息队列和消息循环.我们可以通过Loop.myLooper()得到当前线程的Looper对象,通过Loop.getMainLooper()可以获得当前进程的主线程的Loo

Python 多线程同步队列模型

Python 多线程同步队列模型 我面临的问题是有个非常慢的处理逻辑(比如分词.句法),有大量的语料,想用多线程来处理. 这一个过程可以抽象成一个叫"同步队列"的模型. 具体来讲,有一个生产者(Dispatcher)一方面从语料中读入句子,并且存入队列中,一方面看有没有空闲的消费者(Segmentor),如果有,就把句子从队列中弹出并交给这个空闲的消费者处理. 然后消费者把处理完成的结果交给生产者输出,生产者要保证输出与输入顺序一致. 消费者是典型的threading,它需要看见生成者

Android 开发笔记 “Android 的消息队列模型”

Android是参考Windows的消息循环机制来实现Android自身的消息循环的. Android通过Looper.Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环). Android系统中,Looper负责管理线程的消息队列和消息循环.我们可以通过Loop.myLooper()得到当前线程的Looper对象,通过Loop.getMainLooper()可以获得当前进程的主线程的Looper对象. 一个线程可以存在(当然也可以不存

多线程队列模型

template <typename T> class Queue { private: std::queue<T> q; pthread_mutex_t q_mutex; pthread_cond_t q_cond; public: Queue() { pthread_mutex_init(&q_mutex, NULL); pthread_cond_init(&q_cond, NULL); } virtual ~Queue() { pthread_mutex_de

分布式队列编程:模型、实战

介绍 作为一种基础的抽象数据结构,队列被广泛应用在各类编程中.大数据时代对跨进程.跨机器的通讯提出了更高的要求,和以往相比,分布式队列编程的运用几乎已无处不在.但是,这种常见的基础性的事物往往容易被忽视,使用者往往会忽视两点: 使用分布式队列的时候,没有意识到它是队列. 有具体需求的时候,忘记了分布式队列的存在. 文章首先从最基础的需求出发,详细剖析分布式队列编程模型的需求来源.定义.结构以及其变化多样性.通过这一部分的讲解,作者期望能在两方面帮助读者:一方面,提供一个系统性的思考方法,使读者能

消息模型:主题和队列的区别

一.消息队列的演进 1.初始阶段 最初的消息队列,就是一个严格意义上的队列.队列是一种数据结构,先进先出,在消息入队出队过程中,保证这些消息严格有序.早期的消息队列就是按照“队列”的数据结构设计的. 队列模型: 生产者(Producer)发消息就是入队操作,消费者(Consumer)收消息就是出队也就是删除操作,服务端存放消息的容器自然就称为“队列”. 如果有多个生产者往同一个队列里面发送消息,这个队列中可以消费到的消息,就是这些生产者生产的所有消息的合集.消息的顺序就是这些生产者发送消息的自然

Linux编程之自定义消息队列

我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动.进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序妥当处理来自于各个线程请求,避免一窝蜂的请求而导致消息的异常丢失.想想socket编程里的listen函数吧,里面要设置一个队列长度的参数,其实来自网络的请求已经排成一个请求队列了,只是这个队列是系统帮我们做好了,我们看不到而已.如果系统不帮我们做这个等待队列的话,那就需要我们程序员在应用层实现了.