zoukankan      html  css  js  c++  java
  • ThreadPool学习草稿1

    原文发布时间为:2010-10-27 —— 来源于本人的百度文章 [由搬家工具导入]

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

    namespace TestThreadPool
    {
        class Program
        {
            static object locker = new object();
            static int runningThreads = 0;

            static void Main(string[] args)
            {
                try
                {
                    ThreadPool.SetMaxThreads(4, 4); //设置最大线程数 using System.Threading;

                    runningThreads = 10;
                    for (int i = 0; i < runningThreads; i++)
                    {

                        ThreadPool.QueueUserWorkItem(new WaitCallback(Auto), i);//线程池指定线程执行Auto方法
                    }

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                int iWhileNumber = 0;

                lock (locker)
                {
                    while (runningThreads > 0)
                    {
                        Monitor.Wait(locker);
                        iWhileNumber++;
                    }
                }
                Console.WriteLine("结束了,共循环了" + iWhileNumber + "次");
                //Environment.Exit(0);
                Console.ReadLine();
            }

            public static void Auto(object i)//多线程执行的方法
            {
                try
                {
                    int d = 4 / (int)i;
                    if (string.Equals(i, 2))
                    {
                        Thread.Sleep(1000);
                    }
                    Console.WriteLine(i.ToString());
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    lock (locker)
                    {
                        runningThreads--;
                        Monitor.Pulse(locker);
                    }
                }
            }
        }
    }

  • 相关阅读:
    网页链接在 什么时候 进行跳转到哪里?
    word中那些重要但是被人忽略的快捷键和长word文档的跳转
    如何在editplus中配置ctags?
    winsow xp不能安装软件, 提示"中断" 是因为设置了 软件限制策略
    firefox的plugin-container.exe进程如何关闭?
    thinkphp的url地址区分大小写?
    thinkphp单入口和多入口的访问方法
    什么时候使用tab键来对齐代码和代码的风格
    该不该用inline-block取代float? inline和float的区别?
    cad中关于点样式点的绘制
  • 原文地址:https://www.cnblogs.com/handboy/p/7163961.html
Copyright © 2011-2022 走看看