标签: queue

我是否必须释放 std::queue 中的 malloc 内存?

我有个疑问。假设我有一个使用 malloc 分配的缓冲区,如下所示:

uint16_t buffer_length = 200; // !size is dynamic!, never static
uint8_t* buffer = (uint8_t*) malloc(200*sizeof(uint8_t));
// buffer then is populated somehow from 0 to 199
Run Code Online (Sandbox Code Playgroud)

现在我有一个 std::queue ,我需要 FIFO 几个分配的缓冲区,如下所示:

std::vector<uint8_t> buffer_vector(buffer, buffer + buffer_length);
std::queue<std::vector<uint8_t>> fifo_queue;
fifo_queue.push(buffer_vector);
Run Code Online (Sandbox Code Playgroud)

考虑到我决定从 uint8_t* 转移到 std::vector 因为我可以在单个元素中存储更多缓冲区信息(长度)。现在我想从队列中取出项目:

std::vector<uint8_t> taken_item = fifo_queue.front(); // reads the FIFO item
fifo_queue.pop(); // removes from FIFO
uint8_t* taken_item_buffer_ptr = taken_item.data(); // takes the buffer ptr
uint16_t taken_item_buffer_length = taken_item.capacity(); // takes the size
Run Code Online (Sandbox Code Playgroud)

现在我可以处理从 FIFO 返回的缓冲区,问题是,我是否必须释放返回的指针?例如如下: …

c++ malloc queue free fifo

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

Laravel Job 错误 Job 是不完整的类

我收到一个错误,我不知道如何修复,所以我想知道是否可以获得一些帮助。

我的功能:

                dispatch(new \App\Jobs\createSqlJob($databaseName, $data['company_name']));
Run Code Online (Sandbox Code Playgroud)

这是错误:

| 2022-12-13 21:36:38 | Exception: Job is incomplete class: {"__PHP_Incomplete_Class_Name":"App\\Jobs\\createSqlJob","99992","99992"} in /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php:116
Stack trace:
#0 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(69): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware()
#1 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call()
#2 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(428): Illuminate\Queue\Jobs\Job->fire()
#3 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(378): Illuminate\Queue\Worker->process()
#4 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(172): Illuminate\Queue\Worker->runJob()
#5 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(130): Illuminate\Queue\Worker->daemon()
#6 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(114): Illuminate\Queue\Console\WorkCommand->runWorker()
#7 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Queue\Console\WorkCommand->handle()
#8 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#9 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#10 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod()
#11 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Container/Container.php(651): Illuminate\Container\BoundMethod::call()
#12 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Console/Command.php(136): Illuminate\Container\Container->call()
#13 /var/www/NTTJob/vendor/symfony/console/Command/Command.php(308): Illuminate\Console\Command->execute()
#14 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run()
#15 /var/www/NTTJob/vendor/symfony/console/Application.php(1002): Illuminate\Console\Command->run()
#16 /var/www/NTTJob/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand()
#17 /var/www/NTTJob/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()
#18 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Console/Application.php(102): Symfony\Component\Console\Application->run()
#19 /var/www/NTTJob/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129): Illuminate\Console\Application->run() …
Run Code Online (Sandbox Code Playgroud)

queue jobs laravel

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

C++ 中的队列和线程

我试图做什么:

我试图使程序的目标是将元素添加到队列(在线程中)并显示有关队列的数据(您可以在主窗口中看到要显示的数据)。在此之前,我想从队列中删除一个元素(每两秒)并添加新元素(每一秒)。

代码

#include <iostream>
#include <queue>
#include <thread>
#include <Windows.h>

using std::queue;
using std::cout;

void loadQueue(queue<int> &toLoad)
{
    for(int i = 0; i < 100; i++)
    {
        toLoad.push(i); 
        Sleep(1000);
    }
}

int main(void)
{
    queue<int>toLoad;
    std::thread(loadQueue, std::ref(toLoad));

    while(true)
    {
        cout << "SIZE OF QUEUE : " << toLoad.size() << '\n' << '\n'; 

        cout <<"FRONT :" << toLoad.front() << '\n' << '\n';

        cout <<"BACK : " << toLoad.back() << '\n';
        toLoad.pop();
        Sleep(2000);
    }

}
Run Code Online (Sandbox Code Playgroud)

关于错误

当我启动程序时,我什么也看不到。程序立即关闭。Visual Studio 向我显示此消息:

启动程序后 VISUAL STUDIO 代码显示错误

c++ queue multithreading

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

ObjC:将逻辑置于一个变量中,并将该变量排入一个数组......做白日梦?

我正在尝试将以下JS代码翻译成ObjC; 它基本上定义了一个函数并将其存储在一个数组中以便以后执行:

var logic = function() {
    me.removeNode(node);
}
this.queue.push(logic);
Run Code Online (Sandbox Code Playgroud)

我的ObjC端口包含方法:-(void)removeNode:(AbstractNode*)node我被卡住了...我想使用指定的"node"参数对此方法进行排队调用...

编辑:我正在阅读选择器.它仍然很模糊,但可能有所帮助.不知何故.或不?

它甚至可能,还是我需要找到一个解决方法:-)?谢谢!

解决这个问题归功于社区:

// Queue declaration
NSMutableArray *IRQ = [[NSMutableArray array] retain];

// Add logic to the queue for delayed execution:
[IRQ addObject:^{ NSLog(@"thanks for the help!"); } ];

// Call later
for (int i = 0; i < [IRQ count]; i++){
     void (^delayedCall)(void) = [IRQ objectAtIndex:i];
     delayedCall();
}
Run Code Online (Sandbox Code Playgroud)

queue function objective-c

-1
推荐指数
1
解决办法
130
查看次数

C#优先级队列,泛型类型<T>转换

public class PriorityQueue<T> : IPriorityQueue<T> 
                            where T : IComparable
Run Code Online (Sandbox Code Playgroud)

所以,我已经使用上面的Header创建了一个优先级队列类,我试图将它与另一个类一起使用.

        private static PriorityQueue<Order> PQ;
Run Code Online (Sandbox Code Playgroud)

看起来这应该完全正常,但我收到了这个错误.

namespace.Order不能T在泛型方法中用作类型参数namespace.PriorityQueue<T>.有没有隐式转换从namespace.OrderSystem.IComparable

我无法辨别出这是告诉我要做什么的.这是否意味着我的IComparable实现不足以达到此目的,还是我正在使用某种错误的语法?

c# generics queue priority-queue

-1
推荐指数
1
解决办法
556
查看次数

队列中的Java空指针异常

我一直在尝试编写一个使用Node文件的队列,我似乎无法弄清楚空指针异常的问题.我在网上看了一下,但我对Java太新了,我想要理解我在这里寻找的东西.任何人都可以找到它或者至少引导我朝着正确的方向前进吗?

首先是队列:

public class Queue extends CharNode {
public CharNode head;
public CharNode tail;

public Queue(){
    this.head = null;
    this.tail = null;}

public boolean isEmpty(){
    return (head==null);}

public void enqueue(Character character){
    if (isEmpty()){
        head.character = character;
        head.nextNode = tail;}
    else {
        CharNode oldTail = tail;
        tail = new CharNode();
        oldTail.character = character;
        oldTail.nextNode = tail;
    }
    }

public Character dequeue(){
    if (isEmpty()) throw new RuntimeException("Queue Empty");
    head.character = character;
    head = head.nextNode;
    return character;
}       
public static void main(String[] args){ …
Run Code Online (Sandbox Code Playgroud)

java queue null pointers exception

-1
推荐指数
1
解决办法
1927
查看次数

C#队列将所有项目乘以-1

将队列中的每个项目乘以-1(queue.ForEach似乎不存在)的优雅(简短)方法是什么?读取整个队列并将其写入另一个队列似乎过多.有没有办法在现场进行?

c# queue

-1
推荐指数
1
解决办法
275
查看次数

为什么Monitor类保留2个队列:“就绪”和“等待”?

根据MSDN

Monitor 类由静态(在 C# 中)或共享(在 Visual Basic 中)方法组成,这些方法对控制对关键部分的访问的对象进行操作。为每个同步对象维护以下信息:

  • 对当前持有锁的线程的引用。

  • 对就绪队列的引用,其中包含准备获取锁的线程。

  • 对等待队列的引用,其中包含正在等待锁定对象状态更改通知的线程。

在这个线程中,两个队列引起了一些微妙的问题。

我认为上述线程中问题的根本原因是有 2 个队列。如果只有一个队列,则无论何时Monitor.Pulse(),都只能调度该队列中的一个线程来运行。没有办法让多个线程同时处于就绪状态。所以这个问题永远不应该发生。

那么为什么a要Monitor保留2个队列呢?

c# queue multithreading

-1
推荐指数
1
解决办法
362
查看次数

Deque中remove()和pop()的区别

这段代码:

    Deque<String> list = new LinkedList<>();
    list.push("first");
    list.push("second");
    list.push("third");
    
    System.out.println(list.remove());
Run Code Online (Sandbox Code Playgroud)

相当于:

    Deque<String> list = new LinkedList<>();
    list.push("first");
    list.push("second");
    list.push("third");
    
    System.out.println(list.pop());
Run Code Online (Sandbox Code Playgroud)

pop() 和remove() 都删除第一个元素(head)。那么,采用两种不同方法的原因是什么?

java queue collections linked-list deque

-1
推荐指数
1
解决办法
1244
查看次数

该程序没有提供所需的输出.错误的FIFO实现?

这是一个使用的FIFO程序linked list.该程序没有提供所需的输出,但会生成一个长循环,该循环在某个时间后停止并且有一条消息表明程序已停止工作.问题是什么 ?

#include <iostream>
using namespace std;

struct node {
      int data;
      struct node* previous; // This pointer keeps track of the address of the previous node
};

struct queue {
      node* first;
      node* last;
};

node* dataNode_P_A; 

bool loop = true;

struct node* enterData();
struct node* enter_N_Data();
void displayQueue();

int main() {
    struct node* dataNode= enterData();

    while( loop ) {
        cout << "Want to enqueue ? Press y/n : ";
        char ans;
        cin >> ans;
        if( …
Run Code Online (Sandbox Code Playgroud)

c++ queue fifo visual-c++ data-structures

-2
推荐指数
1
解决办法
181
查看次数