zoukankan      html  css  js  c++  java
  • C#线程池

    using System;
    using System.Threading;
    public class ThreadTest
    {
        static double number1 = -1;
        static double number2 = -1;
        public static void Main()
        {
            int maxThreadNum, portThreadNum;
            int minThreadNum;
            ThreadPool.GetMaxThreads(out maxThreadNum, out portThreadNum);
            ThreadPool.GetMinThreads(out minThreadNum, out portThreadNum);
            Console.WriteLine("最大线程数:{0}", maxThreadNum);
            Console.WriteLine("最小线程数:{0}", minThreadNum);
            int x = 15600;
            Console.WriteLine("启动第一个任务:计算{0}的8次方", x);
            //ThreadPool.QueueUserWorkItem方法在线程池中创建一个线程池线程
            //来执行指定的方法(用委托WaitCallback来表示),并将该线程排入线程
            //池的队列等待执行。
            ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), x);//x作为TaskProc1方法的参数   
            Console.WriteLine("启动第二个任务:计算{0}的8次方根", x);
            ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc2), x);
            while (number1 == -1 || number2 == -1) ;  //如果两个数字有任意一个不变化,
            //说明最少有一个线程没运行完继续循环直至线程池中所有线程运行完。
            Console.WriteLine("y({0})={1}", x, number1 + number2);
        }
        static void TaskProc1(object o)
        {
            number1 = Math.Pow(Convert.ToDouble(o), 8);
        }
        static void TaskProc2(object o)
        {
            number2 = Math.Pow(Convert.ToDouble(o), 1.0 / 8.0);
        }
    }

  • 相关阅读:
    初始化类的对象时代码的执行顺序
    非原子的 64 位操作
    守护线程
    Redis
    Redis
    Redis
    Redis
    好听美文随手记
    往服务器数据库插入数据报错,在本地数据库测试却无错误。
    关于云服务器中发送邮件,出现无法从传输连接中读取数据:
  • 原文地址:https://www.cnblogs.com/zztong/p/6695205.html
Copyright © 2011-2022 走看看