基本概念
- 进程:系统中正在运行的一个应用程序,资源分配的最小单位。
- 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行。程序的执行的最小单位。
- 一个进程中至少有一个线程,也可以有多个线程,如果有多个线程,这个应用程序也可称为多线程程序。
- 线程主要由CPU寄存器、调用栈、线程本地存储器(Thread Local Storage,TLS),组成的。
CPU寄存器:主要记录当前线程所执行的状态;
调用栈:维护线程所调用的内存与数据;
TLS:存放线程的状态信息; - 单线程程序与多线程程序;
单线程程序:多个任务只能依次执行;
多线程程序:多个任务可以同时执行; - 多线程优点: (1)可以同时完成多个任务,适当提高程序的执行效率; (2)能适当提高资源利用率(CPU、内存利用率);
程序的运行原理
前面说了程序的执行靠线程。那CPU对线程的处理是怎样的呢?一般分为两种。
(1)分时调度
所有线程轮流使用CPU的使用权,平均分配给每个线程占用CPU的时间。
(2)抢占式调度
优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个线程处理(线程的随机性)。
多线程的初步理解的例子(C#):
用应用命名空间:
using System.Threading;
static void Main(string[] args)
{
Thread thread = new Thread(Thread1);
thread.Start();
Console.ReadKey();
}
static void Thread1()
{
Console.WriteLine("这是一个无参数的方法");
}