有没有办法在Glib v2.32 +中设置线程优先级?

时间:2012-09-07 22:44:39

标签: linux multithreading cross-platform glib multiplatform

Glib 2.30 API允许通过GThreadPriority枚举设置线程优先级。但是,该API为deprecated as of 2.32,我无法找到有关使用新API设置线程优先级的任何信息。我在API refrence中通过所有与线程相关的部分Ctrl + F'd,没有发现与优先级相关的内容。谷歌似乎也不知道任何事情。

那么在2.32 API中为可能的线程分配优先级呢?如果是,如何在创建时执行此操作,是否可以在创建线程后更改它?我知道pthread支持所有这些,但我更喜欢坚持与平台无关的Glib API。

1 个答案:

答案 0 :(得分:4)

设置线程优先级已消失。在glib git log中this commit解释了为什么

  

GThread:弃用线程优先级

     

线程优先级已被记录为在Solaris上不起作用,并且它们在Linux上毫无意义,除非该进程单独请求实时调度(即便如此,它似乎只能以root身份运行)。

也许使用线程池并且g_thread_pool_set_sort_function ()可能没问题?