共计 891 个字符,预计需要花费 3 分钟才能阅读完成。
线程 被定义为程序的执行门路。每个线程都定义了一个独特的控制流。如果您的应用程序波及到简单的和耗时的操作,那么设置不同的线程执行门路往往是无益的,每个线程执行特定的工作。
线程是轻量级过程。一个应用线程的常见实例是古代操作系统中并行编程的实现。应用线程节俭了 CPU 周期的节约,同时进步了应用程序的效率。
到目前为止咱们编写的程序是一个单线程作为应用程序的运行实例的繁多的过程运行的。然而,这样子应用程序同时只能执行一个工作。为了同时执行多个工作,它能够被划分为更小的线程。
线程生命周期
线程生命周期开始于 System.Threading.Thread 类的对象被创立时,完结于线程被终止或实现执行时。
上面列出了线程生命周期中的各种状态:
未启动状态:当线程实例被创立但 Start 办法未被调用时的情况。
就绪状态:当线程筹备好运行并期待 CPU 周期时的情况。
不可运行状态:上面的几种状况下线程是不可运行的:
曾经调用 Sleep 办法
曾经调用 Wait 办法
通过 I/O 操作阻塞
死亡状态:当线程已实现执行或已停止时的情况。
主线程
在 C# 中,System.Threading.Thread 类用于线程的工作。它容许创立并拜访多线程应用程序中的单个线程。过程中第一个被执行的线程称为主线程。
当 C# 程序开始执行时,主线程主动创立。应用 Thread 类创立的线程被主线程的子线程调用。您能够应用 Thread 类的 CurrentThread 属性拜访线程。
上面的程序演示了主线程的执行:
实例
using System;
using System.Threading;
namespace MultithreadingApplication
{
class MainThreadProgram
{static void Main(string[] args)
{
Thread th = Thread.CurrentThread;
th.Name = "MainThread";
Console.WriteLine("This is {0}", th.Name);
Console.ReadKey();}
}
}
当下面的代码被编译和执行时,它会产生下列后果:
This is MainThread