大佬教程收集整理的这篇文章主要介绍了如何在linux中的进程(线程?)ID相关的优先级和调度程序策略?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class Spinner { public static void main(String[] args) { for (int i = 0; i < 100; i++) { (new Thread(new Runnable() { public void run() { while (true); } })).start(); } } }
当我在命令行上运行它时,我注意到我的桌面应用程序(例如文本编辑器)的交互性显着下降.我有一台双核机器,所以我并不为此感到惊讶.
为了解决这个问题,我首先想到的是使用renice -p 20< pid>来完善这个过程.然而,我发现这没有多大影响.我不得不使用类似ls / proc /< pid> / task |的方法来重新计算所有子进程. xargs renice 20 -p – 效果更好.
我对此非常困惑,因为我不希望线程拥有自己的进程ID.即使他们这样做,我也希望renice能够在整个过程中采取行动,而不仅仅是流程的主线.
有没有人清楚地了解这里发生了什么?似乎每个线程实际上是一个单独的进程(至少它有一个有效的PID).我知道历史上Linux就像这样工作,但我相信几年前NPTL已经解决了.
我正在测试RHel 5.4(Linux内核2.6.18).
(顺便说一句.如果我尝试使用sched_setscheduler(< pid>,scheD_BATCH,..)来尝试解决这个交互问题,我会注意到同样的效果.即,我需要对所有“子”进程进行此调用我在/ proc /< pid> / task中看到,在主程序pid上执行一次是不够的.)
以上是大佬教程为你收集整理的如何在linux中的进程(线程?)ID相关的优先级和调度程序策略?全部内容,希望文章能够帮你解决如何在linux中的进程(线程?)ID相关的优先级和调度程序策略?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。