• 何时使用线程


    使用线程有以下三方面原因

    1 可以使用线程将代码同其他代码隔离

    这将提高应用程序的可靠性。如果你的应用支持加载第三方的组件,那么应用程序对于健壮性的要求就会提高,使用线程将有助于满足这个需求。

    比如第三方组件出错、或是崩溃后可以不影响自己的应用程序,同时,还可以再次利用线程来使用第三方组件。

    2可以使用线程来简化编码

    通常,要引入线程时,引入的是要相互协作的代码,他们可能要去线程同步构造知道另一个线程什么时候终止。有时候,使用一个任务自己的线程来执行该任务,会使得编码简单。

    比如对于一个tcp通信任务而言,该任务使用单独的线程来执行网络交互,隔离其他逻辑会让编码变得简单很多,同时也会提高性能

    3可以用线程实现并发执行

    如果应用在多CPU机器上运行,那么让多个任务同时执行,就能提高性能

    前台和后台线程

    CLR将每个线程要么视为前台线程,要么视为后天线程。一个应用的所有前台线程停止运行时,CLR会强制终止仍在运行的任何后台线程。这些线程被直接终止,不会抛出异常。

    因此前台线程用来完成确实想完成的任务,比如,将内存数据Flush到磁盘,另外为非关键性任务使用后台线程。每个APPDomain都可以运行一个单独的应用程序。

    在一个线程的生命周期中,随时可以进行前后台的切换,应用程序的主线程和构造一个Thread对象显示创建的都为前台线程。线程池默认为后台线程,由进入托管环境的本地代码创建的任何线程都被标记为后台线程

  • 相关阅读:
    一篇好文,以在迷茫时阅读
    [转]EeeBox 安裝 Debian 後驅動 Wireless 筆記
    SVN内外网版本库同步手册
    Android小试牛刀之1——对话框应用和SharedPeferences存储
    关于Lucene.net 2.9.2.2 中删除索引的若干问题
    提高SQL SERVER并发能力
    Entity Framework 4 Poco开发之旅 part 2
    在linux下安装dropbox
    Windows平台高性能站点手册
    利用java反射原理写了一个简单赋值和取值通用类【改】
  • 原文地址:https://www.cnblogs.com/PerfectBeauty/p/9462741.html
Copyright © 2020-2023  润新知