C# 线程测试cpu

      深夜,闲得无聊,突然奇想,想写控制cpu的,让cpu按照我的思想来,嘎嘎,由于是自己猜的,不要乱喷哦,虽然没人给我评论。

网上看到一个人说,一个死循环就能把单核cpu搞到100%,我不信,(我的电脑i5 4200M),就写了一个控制台程序,代码如下

     <span style="color:#3366FF;">   static void Main(string[] args)
        {
            while (true)
            {

            }          
            
        }</span>

然后来看效果图

技术分享

     大家看到那个25了吧,上方标记的是cpu,应该是cpu使用率,那么,为啥不是100%呢?我坐在电脑前面想(抓头发,程序员最好不要抓头发,容易掉)。

     突然想到了,人家说的没错,由于是控制台程序,所以跑的是单线程,而我的电脑是双核四线程,那么cpu使用率就是25,我要是开两个线程,死循环,cpu就是50。三个就是75。四个就是100。

    辣么,下来就开始验证,

首先开启两个线程

技术分享

还真是这样的,那么下来分别看看三线程,四线程的死循环



技术分享




技术分享

然后可以干一些自己想干的事情了,比如用程序画一个跳动的折线,要用到Thread.Sleep();这个方法,可以通过它在不同时间控制cpu使用率,下次有空研究一下,碎觉。下面是全部代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace lineCPU
{
    class Program
    {
        static void Main(string[] args)
        {
            //这里是一会测试用的
            Thread th1 = new Thread(new ParameterizedThreadStart(fun));
            Thread th2 = new Thread(new ParameterizedThreadStart(fun));

            Thread th3 = new Thread(new ParameterizedThreadStart(fun));
            Thread th4 = new Thread(new ParameterizedThreadStart(fun));
            th1.Start();
            th2.Start();
            th3.Start();
            th4.Start();    
            
        }

        private static void fun(object obj)
        {
            while (true)
            { 
            
            }
        }
    }
}



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。