这周学习多线程,将一些想法和学习到的东西记录下来,分享跟大家。说的不对的地方,欢迎大家指正。
本小篇讨论前台线程和后台线程。
前台线程和后台线程只有一个区别:
- 后台线程:当程序结束时,所有的后台线程都立即中断。即使后台线程正在运行 finally中的代码。被终止的后台线程不会曝出异常。除非程序被AppDomain.Unload终止。
- 前台线程:当任何一个前台线程在运行时,程序都不会结束,会等待前台线程结束之后,
前台线程和后台线程可以通过Thread.IsBackground property 随时转换。
线程池中的线程都是后台线程
非托管代码开启的线程都是后台线程。
通过new thread创建的线程默认都是前台线程