你的位置:首页 > 软件开发 > ASP.net > 说说C# 多线程那些事

说说C# 多线程那些事

发布时间:2016-04-21 09:00:09
我第一次接触“线程”的概念时,觉得它深奥难懂,看了好多本书,花了很长时间才领悟到它的真谛。现在我就以一个初学者的心态,把我所理解的“多线程”描述给大家。这一次是系列文章,比较完整的展示与线程相关的基本 ...

我第一次接触“get='_blank'>线程”的概念时,觉得它深奥难懂,看了好多本书,花了很长时间才领悟到它的真谛。现在我就以一个初学者的心态,把我所理解的“多线程”描述给大家。这一次是系列文章,比较完整的展示与线程相关的基本概念。希望对初学者有所帮助。

如果你是高手,请你别继续看,会浪费你宝贵的时间。

一、基本概念

什么是进程?

当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。 而一个进程又是由多个线程所组成的。

什么是线程?

线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。

什么是多线程?

多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。

前台线程后台线程?

前台线程能阻止应用程序的终结。一直到所有的前台线程终止后,CLR才能关闭应用程序(即卸载承载的应用程序域)。

后台线程(有时也叫守护线程)被CLR认为是程序执行中可做出牺牲的途径,即在任何时候(即使这个线程此时正在执行某项工作)都可能被忽略。因此,如果所有的前台线程终止,当应用程序域卸载时,所以的后台线程也会被自动终止。

 

线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 CPU 周期的浪费,同时提高了应用程序的效率。

二、线程的生命周期

线程生命周期开始于 System.Threading.Thread 类的对象被创建时,结束于线程被终止或完成执行时。

线程生命周期中的各种状态:

未启动状态:当线程实例被创建但 Start 方法未被调用时的状况(将该线程标记为可以运行的状态,但具体执行时间由cpu决定。)。

就绪状态:当线程准备好运行并等待 CPU 周期时的状况。

不可运行状态:下面的几种情况下线程是不可运行的:(已经调用 Sleep 方法,已经调用 Wait 方法,通过 I/O 操作阻塞)

死亡状态:当线程已完成执行或已中止时的状况。

说说C# 多线程那些事

三、线程

1、主线程

进程中第一个被执行的线程称为主线程

using System;using System.Threading;namespace Threading{  class Program  {    static void Main(string[] args)    {      Thread th = Thread.CurrentThread;      th.Name = "MainThread";      Console.WriteLine("This is {0}", th.Name);      Console.ReadKey();    }  }}

原标题:说说C# 多线程那些事

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录