Tag: 队列

如何将JavaScript函数存储在队列中以便最终执行它们

我已经在JavaScript中创build了一个Queue类,我想将函数作为数据存储在队列中。 这样我可以build立请求(函数调用),并在需要时(实际执行该函数)响应它们。 有没有什么办法把函数作为数据存储,有点类似于 .setTimeout("doSomething()", 1000); 除非是这样 functionQueue.enqueue(doSomething()); 在那里它会存储doSomething()作为数据,所以当我从队列中检索数据时,函数将被执行。 我猜我必须有doSomething()在引号 – >“doSomething()”和一些如何使用string调用函数,任何人都知道如何做到这一点?

实现push_rear(),pop_front()和get_min()都是常量操作的队列

我碰到过这个问题: 实现一个push_rear(),pop_front()和get_min()都是常量操作的队列。 我最初想到使用get_min()具有O(1)复杂度的min-heap数据结构。 但push_rear()和pop_front()将是O(log(n))。 有没有人知道什么是最好的方式来实现这样一个队列,其中有O(1)push(),pop()和min()? 我search了这个,并想指出这个algorithm极客线程 。 但似乎没有任何解决scheme遵循所有3种方法的常量时间规则:push(),pop()和min()。 感谢所有的build议。

堆栈和队列之间的基本区别是什么?

堆栈和队列之间的基本区别是什么? 请帮助我,我无法find差异。 你如何区分一个堆栈和一个队列? 我在各种链接search的答案,并find了这个答案.. 在高级编程中, 堆栈被定义为通过将新元素放置在现有元素的顶部而被延长的元素的列表或序列,并且通过从现有元素的顶部移除元素而缩短。 它是一个ADT [抽象数据types],其math运算是“push”和“pop”。 队列是通过将新元素放置在现有元素的后面并通过删除队列前面的元素而缩短的元素序列。 这是一个ADT [抽象数据types]。 在Java,C ++,Python等编程中对这些术语有更多的了解。 我可以有一个更详细的答案吗? 请帮帮我。

是否有一个固定大小的队列,删除过多的元素?

我需要一个固定大小的队列。 当我添加一个元素和队列已满,它应该自动删除最老的元素。 在Java中是否有现成的实现?

Java中的队列中的添加和报价方法有什么区别?

以PriorityQueue为例,例如http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQueue.html#offer(E) 任何人都可以给我一个Queue的例子add和offer方法是不同的? 根据Collection文档, add方法通常会确保在Collection存在一个元素,而不是添加重复项。 所以我的问题是, add和offer方法有什么区别? offer方法是不是会添加重复项? (我怀疑这是因为如果一个Collection只应该有不同的元素,这将绕过这一点)。 编辑:在PriorityQueue add和offer方法是相同的方法(请参阅我的答案下面)。 任何人都可以给我一个类add和offer方法不同的例子吗?

RabbitMQ消息的大小和types

RabbitMQ队列中可以存储哪些消息? 只有string? 或者我可以select我想要存储的types:int,二进制,string等? 一条消息的最大尺寸是多less? 可以创build多less队列或交换? 还是取决于服务器的能力?

LinkedBlockingQueue vs ConcurrentLinkedQueue

我的问题与之前提到的这个问题有关 。 在我使用生产者和消费者线程之间的通信队列的情况下,人们通常会推荐使用LinkedBlockingQueue或ConcurrentLinkedQueue ? 使用其中一个的优点/缺点是什么? 我从APIangular度看到的主要区别是LinkedBlockingQueue可以有select地绑定。

Python多处理 – Pipe vs Queue

Python的多处理包中的队列和pipe道有什么根本区别? 在什么情况下应该select一个吗? 什么时候使用Pipe()有利? 什么时候使用Queue()是有利的?

Java Queue的实现,哪一个?

来自Javadoc: ConcurrentLinkedQueue是许multithreading将共享访问共享集合的合适select。 该队列不允许空元素。 ArrayBlockingQueue是一个经典的“有界缓冲区”,其中一个固定大小的数组包含生产者插入的元素,并由消费者提取。 这个类支持一个可选的公平策略来sorting等待的生产者和消费者线程 LinkedBlockingQueue通常比基于arrays的队列具有更高的吞吐量,但是在大多数并发应用程序中性能较差。 我有两个场景,一个需要队列支持许多生产者(线程使用它)与一个消费者,另一个是相反的方式。 我不明白是否应该使用ConcurrentLikedQueue或其他(数组或LinkedList实现)。 Wherent'所有这些实现应该是并发的? 我的意思是,有人可以解释我ConcurrentLikedQueue和LinkedBlockingQueue什么区别吗? 另外, ArrayBlockingQueue的可选公平策略是什么?

Queue.Queue与collections.deque

我需要一个multithreading可以放入东西的队列,多个线程可以读取。 Python至less有两个队列类,Queue.Queue和collections.deque,前者似乎在内部使用后者。 两者都声称在文档中是线程安全的。 但是,队列文档还指出: collections.deque是一个无界队列的替代实现,具有快速primefacesappend()和popleft()操作,不需要locking。 我想我并不是无意的:这是否意味着deque并不完全是线程安全的? 如果是这样,我可能不完全了解这两个阶级之间的区别。 我可以看到Queue添加了阻止function。 另一方面,它失去了一些像支持in-operator这样的dequefunction。 是直接访问内部deque对象 x在Queue()。deque 线程安全的? 另外,为什么当队列已经是线程安全的时候,Queue为它的操作使用一个互斥锁呢?