如何指定线程优先级?

Posted

技术标签:

【中文标题】如何指定线程优先级?【英文标题】:How to specify thread priority? 【发布时间】:2012-09-05 19:56:22 【问题描述】:

我需要在嵌入式 Linux 目标上运行多个线程。 其中一个线程需要大量资源,因此我需要它以低优先级在后台运行。 有时更高优先级的线程将无事可做。典型的 vala Thread.create 如下所示:

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

有没有办法指定线程优先级?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于如何指定线程优先级?的主要内容,如果未能解决你的问题,请参考以下文章

005 线程ID和线程的优先级

如何设置线程优先级 delphi

Java 线程优先级如何转换为 OS 线程优先级?

[QNX 自适应分区用户指南]7 临界线程

多线程-3

线程中的sleep()join()yield()方法有什么区别?