2012-09-05 50 views
0

我需要在embedded-linux目标上运行多个线程。 其中一个线程需要大量资源,所以我需要它以低优先级在后台运行。 有时候更高优先级的线程将无所事事。一个典型的VALA Thread.create看起来是这样的:如何指定线程优先级?

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

是否有指定线程的优先级的方法吗?

回答

1

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

如果我是你,我会考虑使用优先级队列来代替。如果您不想自己编写bump应该已经拥有您需要的所有内容(特别是,Semaphore和/或TaskQueue)或AsyncPriorityQueue,如果您希望在较低级别工作。