标签: queue

使用Comparator的LinkedBlockingQueue

我正在使用a LinkedBlockingQueue在线程之间共享一些对象.问题是我可以在这个队列中有一些重复.我试过这个解决方案:

SortedSet<ResultInsert> set = new TreeSet<ResultInsert>(new MyComparator());
set.addAll(bulkInserts);
Run Code Online (Sandbox Code Playgroud)

并实施:

@Override
    public int compare(ResultInsert arg0, ResultInsert arg1) {

}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它似乎没有将我的集合中的每个元素与所有元素进行比较.例如,我有61个元素,它消除了一些重复,我有51个元素,除了在这51个之间还有一些重复.

我刚刚做了一个测试:对于61个对象,它调用了342次,351次,...不是每次都相同的次数.我记录了所有,我没有得到它.它并不能比较所有.

请问有什么想法吗?从今天早上开始,我正试图解决这个问题,我无法继续前进.

java queue comparator

0
推荐指数
1
解决办法
902
查看次数

在块中声明变量,目标C.

线程我的项目,但使用队列和块,但我尝试排队代码时收到错误.我知道你不能在块中排列UI元素,所以我避免这样做,但我得到的错误是当我在块之外调用UI元素时它表示尽管在块内声明了变量,但是它没有声明.这是代码.代码是一个UITableView方法,它只需要一个数组对它进行排序并显示它.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Create an instance of the cell
UITableViewCell *cell;
cell = [self.tableView dequeueReusableCellWithIdentifier:@"Photo Description"];

if(!cell)
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Photo Description"];

// set properties on the cell to prepare if for displaying
//top places returns an array of NSDictionairy objects, must get object at index and then object for key

//Lets queue this
dispatch_queue_t downloadQueue = dispatch_queue_create("FlickerPhotoQueue", NULL);
dispatch_async(downloadQueue, ^{

//lets sort the array

NSArray* unsortedArray = [[NSArray alloc] initWithArray:[[self.brain class] …
Run Code Online (Sandbox Code Playgroud)

variables queue xcode block objective-c

0
推荐指数
1
解决办法
1671
查看次数

Queue.Count - 它是如何工作的?

你可以告诉我,每次打电话后Count,Queue过去所有Queue和计数或队列都有一个intCount 属性,每个添加/删除它增加/减少?

无论如何,有没有更好的方法来知道队列是否为空?

c# queue

0
推荐指数
1
解决办法
4162
查看次数

如何实现只有堆栈实现的队列?

我知道有2个堆栈但是怎么用一个?

queue

0
推荐指数
2
解决办法
4985
查看次数

linux命令行的顺序FIFO队列

我正在尝试找到或实现一个简单的解决方案,可以按顺序排队Linux shell命令,以便一次执行一个.以下是标准:

  1. 队列必须一次执行一个命令,即不能同时运行两个命令.
  2. 我没有提前命令列表.他们将从我的Web服务器收到的Web请求进入.这意味着队列可能很长时间是空的,并且10个请求可以同时进入.
  3. 我的Web服务器只能对shell进行系统调用,因此需要从命令行调用此程序/解决方案.
  4. 我只有一台机器,所以它不能也不需要将工作分配给多台机器.

最初我认为at命令可以做我想要的,但唯一的事情是它不会按顺序执行命令.

我正在考虑使用以下部分在python中实现我自己的解决方案:

  1. 有一个带锁文件的专用目录
  2. 排队的命令存储为单个文件,文件名包含递增序列ID或时间戳或类似的东西,我称之为"命令文件"
  3. 使用fcntl锁定文件上的模块编写python脚本,以确保只运行1个脚本实例
  4. 该脚本将监视任何文件的目录,并按文件名的顺序在文件中执行shell命令
  5. 当目录没有"命令文件"时,脚本将解锁锁定文件并退出
  6. 当我的Web服务器想要将作业排队时,它将添加一个新的"命令文件"并调用我的python脚本
  7. python脚本将检查自身的另一个实例是否正在运行.如果是,则退出,这将使另一个实例处理新排队的"命令文件".如果不是,则锁定锁定文件并按顺序开始执行"命令文件"

听起来这听起来有用吗?我不知道如何处理的唯一竞争条件是当脚本的第一个实例检查目录并看到它是空的时,在解锁锁定文件之前,新命令排队并调用脚本的新实例.当新脚本看到文件被锁定时,它将退出.然后原始脚本将解锁文件并退出.

有什么东西已经做到了,所以我不必自己实现吗?

linux queue sequential

0
推荐指数
1
解决办法
4717
查看次数

虽然循环循环次数比我指定的多

我正在制作一个时钟驱动的模拟程序,除其他问题外,我的主要while循环,while(jobsCompleted < jobsToComplete)循环次数超过预期/需要.例如,如果我要分配500 jobsToComplete,程序结束时的输出将告诉我已完成505个作业.我现在尝试调试这个问题至少一个小时,但无济于事.任何帮助表示赞赏.谢谢!

#include <iostream>
#include <string>
#include <stdlib.h>
#include <queue>
#include <fstream>
#include "job.cpp"

using namespace std;

int main()
{
  ofstream cpuSim;
  cpuSim.open("cpuSim.out.txt");

  int clock = 0, jobsCompleted = 0, jobsToComplete = 0, probUser = 0, probability, id = 0;
  jobType_t job_type;
  int inWQ, outWQ, inCPUQ, outCPUQ, required, given, jobTypeInt, timeSpentInCPUqueue = 0, timeSpentInWaitQueue = 0, CPUidle = 0;
  queue<job> CPUqueue, waitQueue;

  int numIO = 0, numCPU = 0;

  srand(time(NULL));

  cout << "Enter how many …
Run Code Online (Sandbox Code Playgroud)

c++ simulation queue class while-loop

0
推荐指数
1
解决办法
131
查看次数

带有std :: queue的std :: random_shuffle

如何应用std::random_shuffle算法std::queue?我试过这个:

std::random_shuffle(myQueue.front(), myQueue.back());
Run Code Online (Sandbox Code Playgroud)

并给出错误:

  • '__i- __first'中的'operator-'不匹配
  • '__ first!= __last'中的'operator!='不匹配
  • '__ first + 1'中的'operator +'不匹配
  • '++ __i'中'operator ++'不匹配

我的队列正在举行Card代表扑克牌的课程.我可以理解,错误来自于对std::random_shuffle队列元素进行的操作所以,即使我不需要!= operator为我的Card类,我写了一个,并且该错误消失了.

但是我应该怎么处理其余的错误呢?operators +, - and ++为一Card堂课写作是没有意义的.

c++ queue collections shuffle std

0
推荐指数
1
解决办法
2468
查看次数

Python - 队列 - 为什么我的元组会被砍掉?

为什么当我将一个元组放入这样的队列时:

myqueue.put(('Thread Started'))
Run Code Online (Sandbox Code Playgroud)

我像这样调用.get():

item = myqueue.get()
print item
Run Code Online (Sandbox Code Playgroud)

它打印这个:

('T', 'h', 'r', 'e', 'a', 'd', ' ', 'S', 't', 'a', 'r', 't', 'e', 'd')
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?我怎样才能恢复原来的元组?

python string queue multithreading tuples

0
推荐指数
2
解决办法
5177
查看次数

在c#中尝试将节点添加到队列时不能使用.Next

尝试在C#中添加和删除队列中的节点.但是,当尝试使用时,front.Next我得到一个编译器错误,该定义未包含在内.

class Queue<T>
{
    int count = 0;
    Node<T> front = null;
    Node<T> end = null;

    public void Enqueue(T obj)
    {
        if (count == 0)
        {
            front = new Node<T>(obj);
        }
        else 
        {
            Node<T> newEnd = new Node<T>(obj);
            newEnd.Next = end;
            count++;
            end = newEnd;
        }
    }

    public T Dequeue(T obj)
    {
        Node<T> newFront = new Node<T>(obj);
        newFront = front.Next;
        count--;
        front = newFront;
        return front;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# queue

0
推荐指数
1
解决办法
322
查看次数

搜索项目链表C(队列)

我有两个结构名称*head和*tail.

我使用head作为链表的起点和尾部的结尾.

假设我有一个包含任意数量元素的链表

typedef struct queue
{
    int stuff;
    struct queue *nextNode;
}q;
Run Code Online (Sandbox Code Playgroud)

在我的一个节点中,stuff = 164(这是假设的)

我如何通过链接列表搜索164?

谢谢!

c queue traversal linked-list

0
推荐指数
1
解决办法
5506
查看次数