IsBackground对线程的重要作用

要点:

1、当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的。

2、当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束。

3、只有IsBackground=TRUE的线程才会随着主线程的退出而退出。

4、当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出。

5、原理:只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序。

时间: 2024-10-05 00:46:32

IsBackground对线程的重要作用的相关文章

ThreadPool 线程池的作用

相关概念: 线程池可以看做容纳线程的容器: 一个应用程序最多只能有一个线程池: ThreadPool静态类通过QueueUserWorkItem()方法将工作函数排入线程池: 每排入一个工作函数,就相当于请求创建一个线程: 线程池的作用: 线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创建和销毁线程所需的时间,从而提高效率. 如果一个线程的时间非常长,就没必要用线程池了(不是不能作长时间操作,而是不宜.),况且我们还不能控制线程池中线程的开始.挂起.和中止.

缓存线程池的作用

JAVA提供4种缓存线程池 newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程. newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待. newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行. newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(F

关于线程的创建方式,线程池的作用

线程的创建方式: 1.线程继承Thread类,通过该对象的start()方法启动线程 2.线程实现Runnable接口,通过往Thread类构造传入Runnable对象,thread.start()启动线程. 3.线程实现Callable接口.Callable相当于run方法有返回值的Runnable,与Future结合使用(接收返回值使用Future). 线程池的使用,为什么使用线程池? 复用线程,使用工作队列,避免无限制创建线程.重用线程降低开销,请求到达时,线程已存在,减少创建线程的等待时

线程池的作用

1.限定线程的个数,不会导致由于线程过多导致系统运行缓慢或崩溃 2.线程池不需要每次都去创建或销毁,节约了资源. 3.线程池不需要每次都去创建,响应时间更快. 连接池也是一样. 原文地址:https://www.cnblogs.com/cyx0526/p/12067905.html

.Net线程问题解答

基础篇 怎样创建一个线程 受托管的线程与 Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 WinForm多线程编程篇 我的多线程WinForm程序老是抛出InvalidOperationException ,怎么解决? Invoke,BeginInvoke干什么用的,内部是怎么实现的 每个线程都有消息队列吗? 为什么Winform不允许跨线程修改UI线程控件的值 有没有什么办法可以简化WinForm多线程的开发 线程池 线程池

ThreadPool类(线程池)

原文:ThreadPool类(线程池) CLR线程池并不会在CLR初始化时立即建立线程,而是在应用程序要创建线程来运行任务时,线程池才初始化一个线程.线程池初始化时是没有线程的,线程池里的线程的初始化与其他线程一样,但是在完成任务以后,该线程不会自行销毁,而是以挂起的状态返回到线程池.直到应用程序再次向线程池发出请求时,线程池里挂起的线程就会再度激活执行任务.这样既节省了建立线程所造成的性能损耗,也可以让多个任务反复重用同一线程,从而在应用程序生存期内节约大量开销. 通过CLR线程池所建立的线程

Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor

介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? Java new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 1 2 3 4 5 6 7 new Thread(new

linux服务器开发二(系统编程)--线程相关

线程概念 什么是线程 LWP:Light Weight Process,轻量级的进程,本质仍是进程(在Linux环境下). 进程:独立地址空间,拥有PCB. 线程:也有PCB,但没有独立的地址空间(共享). 进程与线程的区别:在于是否共享地址空间. 独居(进程). 合租(线程). Linux下: 线程:最小的执行单位. 进程:最小分配资源单位,可看成是一个线程的进程. 安装man文档 sudo apt-get install glibc-doc sudo apt-get install manp

守护线程以及要使用时注意的一点(Daemon Thread)

在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) Daemon的作用是为其他线程的运行提供便利服务,比如垃圾回收线程就是一个很称职的守护者.User和Daemon两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,虚拟机也就退出了. 因为没有了被守护者,Daemon也就没有工作可做了,也就没有继续运行程序的必要了. 值得一提的是,守护线程并非只有虚拟机内部提供