我需要在embedded-linux目标上运行多个线程。
其中一个线程需要大量资源,因此我需要它以低优先级在后台运行。
有时优先级较高的线程无关。典型的vala Thread.create
如下所示:
Thread.create<void*> (pProcessor->run, true);
有没有办法指定线程优先级?
答案 0 :(得分:1)
您无法在GLib中使用线程内容,您必须直接使用pthreads。有关如何在C here中执行此操作的信息。您还需要为相关函数创建Vala绑定,因为还没有人这样做(这很简单......如果您了解Vala如何映射到C,它只需要几分钟)。
如果我是你,我会考虑使用优先级队列。如果你不想写自己的bump应该已经拥有你需要的一切(具体来说,Semaphore和/或TaskQueue),或AsyncPriorityQueue,如果你愿意的话我喜欢在较低的水平工作。