标签:默认 任务 task 创建 利用 color code ++ string
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace 线程池 { class Program { static void Main(string[] args) { //WaitCallback //线程池线程都是后台线程 //线程池的线程优势:线程可以进行重用,提高了线程的利用率 //线程池找一个空闲线程给我们执行这个任务,当任务完成后,线程不立即释放 //而是回到线程池,继续做其它的任务 //线程切换消耗资源,cpu再切换线程的时候,需要把当前线程执行的状态保持到寄存器中。 //线程创建非常消耗资源。线程创建非常满,占用大量的内存空间。每个线程最小1M内存开销。 //因为操作系统切换线程需要消耗大量的时间和资源,所以不一定线程越多执行效率越高 //线程池中的最大线程书:1024 默认1000个 //最小的线程数:4,默认是4个(根据cpu不同而不同) //1核心:255个线程,4*255=1000 ThreadPool.QueueUserWorkItem((s) => { Console.WriteLine(s); }, "jj"); #region 比较线程和线程池的速度 Stopwatch sp = new Stopwatch(); sp.Start(); for (int i = 0; i < 100;i++ ) { new Thread(() => { int mm = i * 2 + 2 - 3 * 3; }); } sp.Stop(); Console.WriteLine("一百个线程花费的毫秒数:"+sp.Elapsed.TotalMilliseconds); sp.Restart(); for (int j = 0; j < 100;j++ ) { ThreadPool.QueueUserWorkItem((s) => { int nn = j * 2 + 2 - 3 * 3; }); } sp.Stop(); Console.WriteLine("线程池花费的毫秒数:"+sp.Elapsed.TotalMilliseconds); #endregion Console.ReadKey(); } } }
标签:默认 任务 task 创建 利用 color code ++ string
原文地址:http://www.cnblogs.com/caohuimingfa/p/6445339.html