zoukankan      html  css  js  c++  java
  • Thread.Sleep会让出cpu,证明如下

    using System;
    using System.Threading;
    
    namespace Test
    {
        class Program
        {
            public static void CallToChildThread()
            {
                Console.WriteLine("ThreadId:" + Thread.CurrentThread.ManagedThreadId);
                //Thread.Sleep(200000); 
    
                while (true)
                {
    
                }
            }
    
            public static void CreatThread()
            {
                ThreadStart childref = new ThreadStart(CallToChildThread);
                Thread childThread = new Thread(childref);
                childThread.Start();
            }
    
            public static void Run()
            {
                for (int i = 0; i < 100000; i++)
                {
                    Console.WriteLine("Run:" + i);
                }
            }
    
            public static void CreatRun()
            {
                ThreadStart childref = new ThreadStart(Run);
                Thread childThread = new Thread(childref);
                childThread.Start();
            }
    
            static void Main(string[] args)
            {
                for (int i = 0; i < 50; i++)
                {
                    CreatThread();
                }
    
                for (int i = 0; i < 10; i++)
                {
                    CreatRun();
                }
    
    
    
                Console.WriteLine("Hello World!");
                Console.ReadKey();
            }
        }
    }
    

      

    一:CallToChildThread死循环时,新创建线程很慢,重点是没有RunData,执行效果如下图:
    public static void CallToChildThread()
            {
                Console.WriteLine("ThreadId:" + Thread.CurrentThread.ManagedThreadId);
                //Thread.Sleep(200000); 
    
                while (true)
                {
    
                }
            }
    

     

    二.CallToChildThread   Thread.Sleep(200000);时,瞬间完成新创建线程,RunData立马执行,且打印值,,执行效果如下图:

    public static void CallToChildThread()
            {
                Console.WriteLine("ThreadId:" + Thread.CurrentThread.ManagedThreadId);
                Thread.Sleep(200000);
    
                //while (true)
                //{
    
                //}
            }
    

      

  • 相关阅读:
    111
    实验 12 综合练习二
    实验 11结构体
    作业 5 指针应用1
    实验 10 指针2
    实验9 指针1
    实验8 数组2
    实验7
    321
    实验9-2
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/14608102.html
Copyright © 2011-2022 走看看