我注意到在执行从MP4到MP3的文件转换时,VLC媒体播放器有时获得高达98%的CPU。我的理解是操作系统试图平衡每个进程的时间,这引起了我的注意。我有一种感觉,像磁盘碎片整理程序和防病毒程序这样的程序也可能需要处理器周期这么大。它是如何在代码(C,C ++)中实现的?
答案 0 :(得分:1)
这取决于操作系统,但操作系统尝试平衡每个进程的时间通常不是主要目标。
智能调度程序将使用可用的CPU,同时仍然可以响应更高优先级的事情,如用户输入和硬件事件。如果没有更多的工作要做(例如阻塞事件),一个很好的行为线程也将在其cpu配额之前撤销其时间片,否则在截止时间,调度程序可以接管cpu(抢占)并给其他线程一个机会执行
您可以将线程优先级设置为调度程序的提示,这可能会影响接管条件,但这一切都取决于调度程序和操作系统内部。
简单地说,你不需要做一些特殊的事情来使用cpu核心,如果你有大量的计算,操作系统会给你最多的。