zoukankan      html  css  js  c++  java
  • C# Thread3——前台线程后台线程

    默认情况下,显示创建的线程都是前台线程,进程会等待内部所有的前台线程执行完才会结束退出

    1.默认创建的线程都是前台线程

    2.进程会等待所有的前台线程执行完而结束,如果还存在后台线程则会强行中断并且退出。

    3.如果关闭程序,但是还存在前台线程没有结束,则程序并不会被完全关闭,任务管理器中还是可以看到进程。

    3.通过设置Thread.IsBackground属性来设置线程的是前台还是后台。

    例1(两个前台线程)

    class Program
        {
            static void Main(string[] args)
            {
                Thread thread1 = new Thread(Task1);
                Thread thread2 = new Thread(Task2);
                thread1.Start();
                thread2.Start();
            }
            private static void Task1()
            {
                Thread.Sleep(1000);
                Console.WriteLine("hello i am first");
            }
            private static void Task2()
            {
                Thread.Sleep(5000);
                Console.WriteLine("hello i am first");
            }
        }

    控制台会等待两个线程执行完才会退出

    例1(Thread1前台,Thread2后台)

    class Program
        {
            static void Main(string[] args)
            {
                Thread thread1 = new Thread(Task1);
                Thread thread2 = new Thread(Task2);
                thread1.Start();
                thread2.IsBackground = true;//设置2为后台线程
                thread2.Start();
            }
            private static void Task1()
            {
                Thread.Sleep(1000);
                Console.WriteLine("hello i am first");
            }
            private static void Task2()
            {
                Thread.Sleep(5000);
                Console.WriteLine("hello i am first");
            }
        }

    则控制台在执行完Thread1之后就会自动退出,而此时Thread2还未执行完,由于他是后台线程所以被强制中断

    最后:如果程序定义了一个不会完成前台线程,主程序并不会正常结束,所以之前同事遇到一个WPF程序关闭,但是还在占用内存,就很快定位到是某前台线程未执行完成。

  • 相关阅读:
    SpringBoot--日期格式化
    SpringBoot--使用redis实现分布式限流
    SpringBoot--集成Shiro
    xxl-job搭建、部署、SpringBoot集成xxl-job
    SpringBoot--使用socket搭建聊天室
    SpringBoot--数据库管理与迁移(LiquiBase)
    SpringBoot--防止重复提交(锁机制---本地锁、分布式锁)
    Springboot--元注解及自定义注解(表单验证)
    java类对象的初始化顺序
    java23种设计模式(三)单例模式
  • 原文地址:https://www.cnblogs.com/qwqwQAQ/p/11939404.html
Copyright © 2011-2022 走看看