Linux线程优先级和调度策略使用指南?

Linux线程优先级和调度策略使用指南?,linux,multithreading,documentation,conventions,thread-priority,Linux,Multithreading,Documentation,Conventions,Thread Priority,在Linux上,我很难掌握线程(/process)优先级、调度策略选择、选择什么时间和方式以及确切的效果 是否有任何文档(如指南),最好有具体的例子和时间表,我可以参考 在Linux上,我很难掌握线程(/process)优先级排序的窍门,无法安排策略选择 优先级划分是通过利用底层操作系统的线程和进程优先级来实现的,从文档的角度很难概括它的细节,这可能是您没有在网上找到指南的原因 我的建议是(坦率地说)不要麻烦线程优先级。我已经做了大量的线程编程,除了默认的优先级,我从来没有发现需要做任何事情。如

在Linux上,我很难掌握线程(/process)优先级、调度策略选择、选择什么时间和方式以及确切的效果

是否有任何文档(如指南),最好有具体的例子和时间表,我可以参考

在Linux上,我很难掌握线程(/process)优先级排序的窍门,无法安排策略选择

优先级划分是通过利用底层操作系统的线程和进程优先级来实现的,从文档的角度很难概括它的细节,这可能是您没有在网上找到指南的原因

我的建议是(坦率地说)不要麻烦线程优先级。我已经做了大量的线程编程,除了默认的优先级,我从来没有发现需要做任何事情。如果所有线程都完全受CPU限制,并且您希望某个任务或另一个任务获得更多的周期,那么线程优先级将产生影响

此外,我非常确定,至少在Linux下,这不是抢占,而是运行频率。许多线程实现都使用优先级调度队列,因此更高频率的线程会优先选择其中的逻辑,以避免让较低频率的线程饥饿。这意味着任何IO或其他阻塞操作都将导致低优先级线程运行并获取其时间片

这一页是该问题的核心。引述:

可以看出,线程优先级1-8最终占据了几乎相等的CPU份额,而优先级9和10占据了更大的份额(尽管9和10之间基本上没有区别)。测试的版本是Java6Update10。值得一提的是,我在运行Vista的双核机器上重复了这个实验,得到的图形的形状是一样的。我对优先级9和10的特殊行为的最佳猜测是,前台窗口中优先级最高的线程具有足够的优先级,以便调度器执行某些其他特殊处理(例如,内部优先级为14及以上的线程在等待后会补充其全部量程,而较低优先级的线程会将其减少1)

如果您必须使用线程优先级,那么您可能需要编写一些测试程序来了解您的体系结构如何利用它们

在Linux上,我很难掌握线程(/process)优先级排序的窍门,无法安排策略选择

优先级划分是通过利用底层操作系统的线程和进程优先级来实现的,从文档的角度很难概括它的细节,这可能是您没有在网上找到指南的原因

我的建议是(坦率地说)不用担心线程优先级。我已经做了大量的线程编程,除了默认优先级之外,我从来没有发现需要做任何事情。线程优先级的唯一不同之处在于,如果所有线程都完全受CPU限制,并且您希望一个或另一个任务获得更多的周期

此外,我很确定,至少在Linux下,这不是抢占,更多的是关于运行频率。许多线程实现使用优先级调度队列,因此更高频率的线程会优先选择其中的逻辑,以避免让较低频率的线程饥饿。这意味着任何IO或其他阻塞操作都会停止使低优先级线程运行并获取其时间片

本页是本期的主要内容。引用:

可以看出,线程优先级1-8的CPU份额实际上是相等的,而优先级9和10的CPU份额要大得多(尽管9和10之间基本上没有区别)。测试的版本是Java 6 Update 10。值得一提的是,我在运行Vista的双核机器上重复了这个实验,得到的图形的形状是相同的。我对优先级9和10的特殊行为的最佳猜测是,前景窗口中优先级最高的线程的优先级刚好足以满足某些其他特殊tr由调度程序启动的处理(例如,内部优先级为14及以上的线程在等待后会补充其全部量程,而较低优先级的线程会将其减少1)

如果您必须使用线程优先级,那么您可能需要编写一些测试程序来了解您的体系结构如何利用它们

在Linux上,我很难掌握线程(/process)优先级排序的窍门,无法安排策略选择

优先级划分是通过利用底层操作系统的线程和进程优先级来实现的,从文档的角度很难概括它的细节,这可能是您没有在网上找到指南的原因

我的建议是(坦率地说)不用担心线程优先级。我已经做了大量的线程编程,除了默认优先级之外,我从来没有发现需要做任何事情。线程优先级的唯一不同之处在于,如果所有线程都完全受CPU限制,并且您希望一个或另一个任务获得更多的周期

此外,我很确定,至少在Linux下,这不是抢占,更多的是关于运行频率。许多线程实现使用优先级调度队列,因此更高频率的线程会优先选择其中的逻辑,以避免让较低频率的线程饥饿。这意味着任何IO或其他阻塞操作都会停止使低优先级线程运行并获取其时间片

本页是本期的主要内容。引用:

可以看出,线程优先级1-8最终占据了几乎相等的CPU份额,而优先级9和10占据了更大的份额(虽然9和10之间基本上没有区别)。测试的版本是Java 6 Update 10。值得一提的是,I