4

Glib 2.30 API允许通过GThreadPriority枚举设置线程优先级。但是,该 API自 2.32 起已弃用,我找不到有关使用新 API 设置线程优先级的任何信息。我已经按 Ctrl+F 浏览了API 参考中所有与线程相关的部分,但没有发现任何与优先级相关的内容。谷歌似乎也一无所知。

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

4

1 回答 1

4

设置线程优先级已不复存在。在 glib git log这个提交解释了原因

GThread:弃用线程优先级

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

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

于 2012-09-07T23:00:13.320 回答