• 线程的控制和线程池


    一.WaitHandle:

        ”.Net 中提供了一些线程间更自由通讯的工具,他们提供了通过"信号"进行通讯的机制

    可以通过ManualResetEvent,AutoResetEvent(他是在开门并且一个 WaitOne 通过后自动关门)来进行线程间的通讯

      • waitOne:    等待开门
      • Set:           开门
      • Reset:       关门
    static void Main(string[] args)
    {
        ManualResetEvent mre = new ManualResetEvent(false);//构造函数 false 表示“初始状态为关门”,设置为 true 则初始化为开门状态
        Thread thread = new Thread(() =>
        {
            Console.WriteLine("开始等着开门");
            mre.WaitOne();           //这里程序就等着开门
            Console.WriteLine("终于开门了");
        });
        thread.Start();
        Console.WriteLine("按任意键开门");
        Console.ReadKey();
        mre.Set();//开门
        Console.ReadKey();
    }

        mre.WaitOne(5000)                           //还可以设置等待超时时间:返回true或false

        WaitHandle.WaitAll(WaitHandle[] waitHandles)            //用来等待所有信号都变为“开门状态”

        WaitHandle.WaitAny(WaitHandle[] waitHandles)                //用来等待任意一个信号都变为“开门状态”

    二.线程池:

        每次创建线程、销毁线程都比较消耗 cpu 资源,因此可以通过线程池进行优化。线程池是一组已经创建好的线程,随用随取,用完了不是销毁线程,然后放到线程池中,供其他人用

      ThreadPool 类的一个重要方法:

        static bool QueueUserWorkItem(WaitCallback callBack, object state)      //第二个重载是用来传递一个参数给线程代码的

     1 static void Main(string[] args)
     2 {
     3     for (int i = 0; i < 20; i++)
     4     {
     5         ThreadPool.QueueUserWorkItem(obj => {
     6             Console.WriteLine("i="+obj);
     7                 
     8         },i);
     9     }
    10     for (int i = 0; i < 20; i++)
    11     {
    12         Console.WriteLine("hello");
    13     }
    14     Console.ReadKey();
    15 }
    线程池的使用
  • 相关阅读:
    javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplicati
    了解燃尽图
    hibernate错误org.hibernate.AnnotationException: No identifier specified for entity:
    JGit的常用功能(提交、回滚,日志查询)
    CoverageBuilder
    IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again
    jacoco-实战篇-增量覆盖率
    代码覆盖率-JaCoCo
    Hard voting and Soft Voting
    AP聚类
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/7560446.html
Copyright © 2020-2023  润新知