编程之美——CPU占用率曲线

前几天终于买了本《编程之美》,从第一题开始做,争取在找工作之前尽快看完。其实这本书看起来很难,但是弄明白思考的方式,问题就变得很简单了。
第一题是CPU占用率曲线的问题,这个题在之前已经写过了,可以参考Windows控制CPU使用率曲线,这篇文章也写了linux下的实现,大家可以参考。
说一下对《编程之美》 1.1的一点注释吧。
1. 如果我们写一个死循环,while(1); ,对于双核的操作系统,并不会导致CPU的使用率为100%,在作者的电脑上,用任务管理器观察是稳定在50%。
2. 对于双核的操作系统(目前都有四核了),使用书上提供的正弦曲线代码清单,出现的也不是规则的正弦曲线。
对于新书来说,这是足以困扰我们,打击新手信心的一件事。为什么会这样呢?
这是由于操作系统对进程的调度,操作系统会把此进程安排在两个核去执行,导致在任务管理器上看到的不标准。因此,笔者建议,大家在自己电脑上实验书中提供的代码时,最好把进程放在一个核去运行。很简单,只需要#include <windows.h>,并且在main()函数里加上SetThreadAffinityMask(GetCurrentThread(), 1);就可以了。注意1代表是哪一个核,试试就知道了~

    原文作者:nevasun
    原文地址: https://blog.csdn.net/nevasun/article/details/6987446
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞