Thread.IsBackground 属性

Thread.IsBackground 属性net提供了Thread类用于线程的操作。当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的推出而退出。后台线程不妨碍程序的终止,只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。【注意】当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALS…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

net 提供了Thread类用于线程的操作。

当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的推出而退出。后台线程不妨碍程序的终止,只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。

【注意】当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的。也就是说,当主线程推出的时 候,IsBackground=FALSE的线程还会继续执行下去,知道线程执行结束。只有IsBackground=TRUE的线程才会顺着主线程的推 出而退出。

static void Main(string[] args)
{       
     Thread[] trd=new Thread[2];
            for (int i = 0; i < 2; i++)
            {

                trd[i]=new Thread(new ThreadStart(ThreadA));
                //trd.Start();
                //trd[i].IsBackground = true;
            }
            Console.WriteLine(“/n/t!! 2 mmmm!!”);
            trd[0].IsBackground = true;

            trd[0].Start();
            trd[1].Start();
            //trd[1].Join();
            //trd[0].Join();
     return;
}

public static void ThreadA()
        {

            int i = 0;
            Console.WriteLine(“id: “+Thread.CurrentThread.ManagedThreadId);
            for (; i < 10000; i++)
            {

                Console.Write(“A”);
                if (i > 200)
                {

                    Console.WriteLine(i);
                    return;
                }
            }
            Console.WriteLine(i);
           
        }

执行上面的例子可以知道,当主线程显示退出的时候,只要那些IsBackground=TRUE的线程随着主线程一起退出了,而那些IsBackground=FALSE还是需要等到自己执行完成完了之后才会退出。

当主线程不显示推出的时候,结果更是奇怪,就是代码执行到最后,主线程应该算是可以退出了。但是这时候IsBackground=FALSE的线程也不退出。也是要等到执行完成后才退出。

可见,.net中的线程应该是尽量保证所有线程都执行完了后才让整个程序退出。具体是个什么个规则就该去问微软了啊!!

转载于:https://www.cnblogs.com/vmyspace/archive/2012/01/30/2332190.html

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

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

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


相关推荐

  • Linux镜像下载

    Linux镜像下载1.CentOSCentOS官网:https://www.centos.org/CentOS各个版本下载:https://www.centos.org/CentOS版本选择:1.DVD版:这个是常用版本,就是普通安装版了,推荐大家安装。里面包含大量的常用软件,大部分情况下安装时无需再在线下载,体积为4G左右。 2.Everything版:顾名思义,包含了所有…

    2022年4月4日
    60
  • mybatis返回值_存储过程获取查询结果

    mybatis返回值_存储过程获取查询结果com.jerry.mapper.TestMapper.javapackagecom.jerry.mapper;importjava.util.List;importjava.util.Map;publicinterfaceTestMapper{ /** *查寻单个结果直接返回Map&amp;amp;amp;lt;String,Object&amp;amp;amp;gt; *@paramid *…………..

    2022年10月4日
    3
  • littlevgl移植_嵌入式ubuntu系统

    littlevgl移植_嵌入式ubuntu系统总述Littlevgl相比较于安卓、QT,占用资源少、使用简单,所以在linux系统下使用Littlevgl优势也比较明显。移植准备工作源码:lvgl:https://github.com/littlevgl/lvgl驱动:lv_drivers:https://github.com/littlevgl/lv_drivers例子:lv_examples:https://github.com/littlevgl/lv_examples下载慢可以将上面链接先导入到码云上再下载。配置工作源码

    2022年9月2日
    3
  • Android HandlerThread 完全解析[通俗易懂]

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/47079737;本文出自:【张鸿洋的博客】1、概述话说最近股市变动不变,也成了热火朝天的话题。不知道大家有没有考虑做个实时更新股市数据的app呢?假设我们要做一个股市数据实时更新的app,我们可以在网上找个第三方的股市数据接口,然后在我们的app中每隔1分钟(合适的

    2022年4月4日
    38
  • Flume和Kafka的区别与联系「建议收藏」

    Flume和Kafka的区别与联系「建议收藏」目录区别点一:区别点二:同样是流式数据采集框架,flume一般用于日志采集,可以定制很多数据源,减少开发量,基本架构是一个flume进程agent(source、拦截器、选择器、channel<MemoryChannel、FileChannel>、sink),其中传递的是原子性的event数据;使用双层Flume架构可以实现一层数据采集,一层数据集合;Flu…

    2022年6月23日
    30
  • centos7查看防火墙命令

    centos7查看防火墙命令一 防火墙的开启 关闭 禁用命令 1 设置开机启用防火墙 systemctlena service 2 设置开机禁用防火墙 systemctldis service 3 启动防火墙 systemctlsta 4 关闭防火墙 systemctlsto 5 检查防火墙状态 systemctlsta 二 使用 firewall cmd 配置端口 1

    2025年7月9日
    5

发表回复

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

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