zoukankan      html  css  js  c++  java
  • 多线程19-线程池批量插入线程

        class Program
        {
            static void UseThreads(int numberOfOperations)
            {
                using (var countdown = new CountdownEvent(numberOfOperations))
                {
                    Console.WriteLine("Scheduling work by creating threads");
                    for (int i = 0; i < numberOfOperations; i++)
                    {
                        var thread = new Thread(() =>
                        {
                            Console.WriteLine("current Thread Id={0}", Thread.CurrentThread.ManagedThreadId);
                            Thread.Sleep(TimeSpan.FromSeconds(0.1));
                            countdown.Signal();
                        });
                        thread.Start();
                    }
                    countdown.Wait();
                    Console.WriteLine();
                }
            }
            static void UseThreadPool(int numberOfOperations)
            {
                using (var countdown = new CountdownEvent(numberOfOperations))
                {
                    Console.WriteLine("Starting work on a threadPool");
                    for (int i = 0; i < numberOfOperations; i++)
                    {
                        ThreadPool.QueueUserWorkItem(x =>
                         {
                             Console.WriteLine("current Thread Id={0}", Thread.CurrentThread.ManagedThreadId);
                             Thread.Sleep(TimeSpan.FromSeconds(0.1));
                             countdown.Signal();
                         });
                    }
                    countdown.Wait();
                    Console.WriteLine();
                }
            }
            static void Main()
            {
                const int numberOfOpeartions = 3000;
                var sw = new Stopwatch();
                sw.Start();
                UseThreads(numberOfOpeartions);
                sw.Stop();
                Console.WriteLine("Excution time using threads:{0}", sw.ElapsedMilliseconds);

                sw.Reset();
                sw.Start();
                UseThreadPool(numberOfOpeartions);
                sw.Stop();
                Console.WriteLine("Execution time using threads:{0}", sw.ElapsedMilliseconds);
            }
        }
  • 相关阅读:
    javascript常用继承方式.
    JavaScript异步编程的四种方法
    ajax的五种状态
    js内存泄漏的问题?
    jquery和zepto有何区别?
    nginx+play framework +mongoDB+redis +mysql+LBS实战总结
    百万级PHP网站Poppen.de的架构分享心得
    【Mongodb教程 第一课 补加课1 】windows7 下安装mongodb 开启关闭服务
    【Mongodb教程 第一课补加课2 】MongoDB下,启动服务时,出现“服务没有响应控制功能”解决方法
    【Mongodb教程 第十七课 】MongoDB常用命令 数据库命令 集合操作命令
  • 原文地址:https://www.cnblogs.com/shidengyun/p/5610126.html
Copyright © 2011-2022 走看看