我需要在嵌入式 Linux 目标上运行多个线程。其中一个线程需要大量资源,因此我需要它以低优先级在后台运行。有时更高优先级的线程将无事可做。典型的 valaThread.create
如下所示:
Thread.create<void*> (pProcessor->run, true);
有没有办法指定线程优先级?
我需要在嵌入式 Linux 目标上运行多个线程。其中一个线程需要大量资源,因此我需要它以低优先级在后台运行。有时更高优先级的线程将无事可做。典型的 valaThread.create
如下所示:
Thread.create<void*> (pProcessor->run, true);
有没有办法指定线程优先级?
你不能在 GLib 中使用线程的东西,你必须直接使用 pthreads。这里有一些关于如何在 C 中做到这一点的信息。您还需要为相关函数创建 Vala 绑定,因为还没有人这样做(这很容易......如果您了解 Vala 如何映射到 C 只需要几分钟)。
如果我是你,我会考虑使用优先级队列。如果您不想编写自己的凹凸,则应该已经拥有您需要的一切(特别是Semaphore和/或TaskQueue),或者如果您更愿意在较低级别工作,则为 AsyncPriorityQueue 。