1

我需要在嵌入式 Linux 目标上运行多个线程。其中一个线程需要大量资源,因此我需要它以低优先级在后台运行。有时更高优先级的线程将无事可做。典型的 valaThread.create如下所示:

Thread.create<void*> (pProcessor->run, true);

有没有办法指定线程优先级?

4

1 回答 1

1

你不能在 GLib 中使用线程的东西,你必须直接使用 pthreads。这里有一些关于如何在 C 中做到这一点的信息。您还需要为相关函数创建 Vala 绑定,因为还没有人这样做(这很容易......如果您了解 Vala 如何映射到 C 只需要几分钟)。

如果我是你,我会考虑使用优先级队列。如果您不想编写自己的凹凸,则应该已经拥有您需要的一切(特别是Semaphore和/或TaskQueue),或者如果您更愿意在较低级别工作,则为 AsyncPriorityQueue 。

于 2012-09-06T00:09:29.377 回答