zoukankan      html  css  js  c++  java
  • Thread 使用心得

    ThreadPool:

    1. 启动的线程会自动结束, 里面不包含"合理死循环"代码.

    一般用于处理某一个任务,执行完成线程即结束.

    Thread 

    1. 用于执行指定的特殊任务, 特点是可以自由处理Initlization, Start, Suspend, Resume, Abort.

    例如:

    a. 专门开启一个线程用于监测数据库某个表数据的变化,

    b. 监测某个实例的状态, 

    这种监测类型一般会用一个while(true){}来实现, 当该线程需结束时,或者线程宿主(主程序)结束时需要使用abort强制结束.

    当用while(true){}时, 如果暂时无任务,可以加入线程等待,通过ManualResetEvent实现

    Demo Code:

     while (true)
                {
                    WaitHandle.WaitAll(new WaitHandle[] { WaitRecombinationMessageHandlerEvent });
                    if (ReceivedPureMessageQueue.Count > 0)
                    {
                       dosomethings();
                    }
                    else
                    {
                        WaitRecombinationMessageHandlerEvent.Reset();
                    }
                }
    

      

  • 相关阅读:
    玩游戏(dfs)
    Find them, Catch them(并查集)
    Shredding Company(dfs)
    Sudoku(dfs)
    Network Saboteur(dfs)
    棋盘问题(dfs)
    Curling 2.0(dfs)
    A Knight's Journey(dfs)
    15. 3Sum
    12. Integer to Roman
  • 原文地址:https://www.cnblogs.com/feinian/p/2151004.html
Copyright © 2011-2022 走看看