zoukankan      html  css  js  c++  java
  • c#多线程学习笔记一

    线程会消耗大量的操作系统资源,多个线程共享一个物理处理器将导致操作系统忙于管理这些线程,而无法运行程序。
    1:暂停线程

    使用Thread.Sleep()使线程进入休眠状态,它会占用尽可能少的cpu,而不浪费系统资源。

    2:线程等待

    Thread.Sleep()需要指定具体的休眠时间,当一个线程需要等待另一个线程执行完成再进行某些操作时,就需要用到Thread.Join()方法。该方法可以实现在两个线程间同步执行,第一个线程会等待另一个线程完成后再继续执行,第一个线程等待时是处于阻塞状态。

    示例代码:static void Main()

         {

          Thread t=new Thread(PrintNumber);

          t.Start();

          t.Join();

          WriteLine("线程t执行结束,主线程执行。")

         }

    3:终止线程

    Thread.Abort()方法可以终止该线程,需要注意的是,使用Abort终止线程时,有可能对程序造成异常从而彻底摧毁应用程序,另外,Abort并不一定总能终止线程,目标线程可以通过处理异常并调用Thread.ResetAbort()方法来拒绝被终止。此时可以优先考虑CancellationToken方法来取消线程的执行。

    4:前台线程和后台线程

    可以通过Thread对象的IsBackgroud属性来设置线程为前台线程还是后台线程,Thread对象通常默认为前台线程。前台线程和后台线程的主要区别:进程会等待所有的前台线程完成后再结束工作,但是如果只剩下后台线程,则会直接结束工作。如果程序定义了一个不会完成的前台线程,主程序并不会正常结束。

  • 相关阅读:
    青云黄允松:2016年是云计算市场最关键的一年
    知道创宇CTO杨冀龙:网络安全人才决定行业格局
    su 与 su
    如何进入单用户模式(CentOS6.9)
    在虚拟机中还原GHO镜像系统
    安装CentOS 7 文字版
    把typora改为微软雅黑+Consolas
    使用python操作文件实现购物车程序
    使用python操作json文本文件
    资源下载网址集合
  • 原文地址:https://www.cnblogs.com/zynNote/p/10524324.html
Copyright © 2011-2022 走看看