2012-09-05 49 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,如果您希望在較低級別工作。