• 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);
                    }
                }
            }
        }
    }

  • 相关阅读:
    CentOS 6.4 系统下的MySQL的主从库配置
    扫盲: JAVA基本常识
    ant学习
    Linux一些命令
    redis学习
    扫盲:注册表和绿色软件常识
    Java.前端.Layer.open.btn验证无效
    Java.数据结构.集合体系详解
    PageHelper踩坑
    Scrum.站立会议介绍
  • 原文地址:https://www.cnblogs.com/handboy/p/7163961.html
Copyright © 2020-2023  润新知