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)
                //{
    
                //}
            }
    

      

  • 相关阅读:
    uva 10129 play on words——yhx
    uva 10305 ordering tasks(超级烂题)——yhx
    uva 816 abbott's revenge ——yhx
    php 格式化数字 位数不足前面加0补足
    NetBeans-xdebug的安装
    php 文件file常用的操作
    pg 匹配中文字符
    隐藏 php apache 的版本号
    php redis扩展
    php 二维数组的排序
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/14608102.html
Copyright © 2011-2022 走看看