一个线程崩溃会引起整个进程崩溃_大量线程状态waiting

一个线程崩溃会引起整个进程崩溃_大量线程状态waiting建议74:警惕线程的IsBackground在CLR中,线程分为前台线程和后台线程,即每个线程都有一个IsBackground属性。两者在表现形式上的唯一区别是:如果前台线程不退出,应用程序的进程就会一直存在,必须所有的前台线程全部退出,应用程序才算退出。而后台进程则没有这方面的限制,如果应用程序退出,后台线程也会一并退出。查看以下代码:staticvoidMain


Jetbrains全系列IDE稳定放心使用

建议74:警惕线程的IsBackground

在CLR中,线程分为前台线程和后台线程,即每个线程都有一个IsBackground属性。两者在表现形式上的唯一区别是:如果前台线程不退出,应用程序的进程就会一直存在,必须所有的前台线程全部退出,应用程序才算退出。而后台进程则没有这方面的限制,如果应用程序退出,后台线程也会一并退出。

查看以下代码:

复制代码
static void Main(string[] args)  
{  
    Thread t = new Thread(() =>
        {  
            Console.WriteLine("线程开始工作……");  
            //省略工作代码  
            Console.ReadKey();  
            Console.WriteLine("线程结束");  
        });  
    //注意,默认就为false  
    t.IsBackground = false;  
    t.Start();  
    Console.WriteLine("主线程完毕");  
} 
复制代码

用Thread创建的线程默认是前台线程,也就是IsBackground属性默认是false。以上代码需等到工作结束(敲入一个按键)应用程序才会结束,而如果设置IsBackground为true,应用程序则会立刻结束。

演示代码使用的是Thread,但我们要注意线程池中的线程默认都是后台线程。

基于前后台线程的区别,在实际编码中应该更多地使用后台线程。只有在非常关键的工作中,如线程正在执行事务或占有的某些非托管资源需要释放时,才使用前台线程。

 

 

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181161.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • gltranslatef函数_sql translate函数怎么用

    gltranslatef函数_sql translate函数怎么用TranslateMessage(&msg);TranslateMessage是用来把快捷键消息转换为字符消息,并将转换后的新消息投递到调用线程的消息队列中。由于Windows对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息。字符消息被投递到调用线程的消息队列中,当下一次调用GetMessage函数时被取出。当我们敲击键盘上的某个字符键时,…

    2022年9月13日
  • torch torchvision 下载安装与使用

    torch torchvision 下载安装与使用本文仅供学习交流使用,如侵立删!联系方式及demo下载见文末torch和torchvision版本对应关系表torch下载官方下载地址:https://download.pytorch.org/whl/torch_stable.html选择对应版本下载即可torch安装安装命令:pipinstalltorch-1.5.1+cpu-cp36-cp36m-win_amd64.whlpipinstalltorchvision-0.6.0+cpu-cp36-cp

    2022年6月24日
  • 在win10自带的mail中如何设置学校邮箱

    在win10自带的mail中如何设置学校邮箱最近突然有项目缘故需要用到学校(所内)邮箱,然而该邮箱不常用,费了好长时间找回密码,好不容易找到密码就想为了信息接受的及时添加到win10的mail里吧,结果发现怎么添加都添加不上,最后得以解决,虽然是个很小的事,但是记录一下过程吧。首先要在添加账户选择高级设置,然后选择Internet电子邮件设置。之后进入里面配置,配置的信息在你想要绑定的邮箱首页的帮助里都可以找到,比如中国科学院的邮件…

    2022年7月25日
  • 关于unity3d播放flash动画,使用插件uniswf

    关于unity3d播放flash动画,使用插件uniswf

    2021年11月21日
  • Google谷歌搜索引擎镜像入口网址大全导航,谷歌搜索引擎镜像站

    Google谷歌搜索引擎镜像入口网址大全导航,谷歌搜索引擎镜像站当我们需要使用谷歌搜索一些学习资料的时候,就需要借助Google谷歌搜索引擎镜像网站,很多同学不知道有哪些可以使用的谷歌搜索引擎镜像站,下面办公人导航就和大家分享Google谷歌搜索引擎镜像入口网址大全导航。1.google谷歌搜索引擎镜像站网址这类谷歌镜像网站界面和谷歌搜索的网站界面一样,搜索结果也是一样的。2.谷歌搜索非原版镜像这类谷歌镜像站的界面和谷歌搜索网站的界面不一样,是搜索结果是一样的。3.google谷歌镜像发布站导航站建议大家收藏使用谷歌镜像像入口网址导航,收录的网址比较全,而且会经

    2022年9月10日
  • Verilog实现MIPS的5级流水线cpu设计(Modelsim仿真)[通俗易懂]

    Verilog实现MIPS的5级流水线cpu设计(Modelsim仿真)[通俗易懂]Verilog实现IMPS的5级流水线cpu设计本篇文章是在功能上实现cpu设计,而非结构上实现。结构上实现可以跳转到(此为个人推荐):Verilog流水线CPU设计(超详细)此外有与本文章配套的资源,文章中不懂的地方可以跳转到:IMPS五级流水线cpu的制作一、实验内容1.1:实验目的(1)CPU各主要功能部件的实现(2)CPU的封装(3)了解提高CPU性能的方法(4)掌…

    2022年8月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号