• 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对象通常默认为前台线程。前台线程和后台线程的主要区别:进程会等待所有的前台线程完成后再结束工作,但是如果只剩下后台线程,则会直接结束工作。如果程序定义了一个不会完成的前台线程,主程序并不会正常结束。

  • 相关阅读:
    7、注解@Mapper、@MapperScan
    SpringBoot
    正则表达式"(^|&)" ,什么意思?
    JSON.NET的Self referencing loop detected with type的原因以及解决办法
    jquery ajax 中各个事件执行顺序
    Lucene BooleanQuery中的Occur.MUST与Occur.Should
    lucene中Field简析
    IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT的分析
    HTML5学习(1)简介
    HTML学习(17)URL
  • 原文地址:https://www.cnblogs.com/zynNote/p/10524324.html
Copyright © 2020-2023  润新知