进程,线程,多线程,线程池



进程是线程的容器,一个进程包含多个线程。

线程的定义是程序的执行路径。每个线程都定义了一个独特的控制流,如果应用程序涉及到复杂且耗时的操作,那么设置不同的线程执行路径会非常有好处,因为每个线程会被指定于执行特定的工作。单一线程会导致程序只能执行一个任务,为了使程序能执行多个任务,就要用到多个线程操作。

线程的生命周期开始于对象的 System.Threading.Thread 类创建时,结束于线程被终止或是完成执行时。下列各项为线程在生命周期中的各种状态:

  • 未启动状态:线程实例已被创建但 Start 方法仍未被调用时的状态。
  • 就绪状态:线程已准备好运行,正在等待 CPU 周期时的状态。
  • 不可运行状态:下面的几种情况下线程是不可运行的:
    • 已经调用 Sleep 方法
    • 已经调用 Wait 方法
    • 通过 I/O 操作阻塞
  • 死亡状态:线程已完成执行或已终止的状态。

在 C# 中,System.Threading.Thread 类用于线程的工作。它允许创建并访问多线程应用程序中的单个线程。进程中第一个被执行的线程称为主线程。

线程的创建

线程是通过扩展 Thread 类创建的,扩展而来的 Thread 类调用 Start() 方法即可开始子线程的执行

public static void CallToChildThread() {
         Console.WriteLine("Child thread starts");
      }

static void Main(string[] args) {
         ThreadStart childref = new ThreadStart(CallToChildThread);
         Console.WriteLine("In Main: Creating the Child thread");
         Thread childThread = new Thread(childref);
         childThread.Start();
         Console.ReadKey();
      }

线程的管理

Thread 类提供了多种用于线程管理的方法。调用 sleep() 方法来可在一段特定时间内暂停线程

线程的销毁

使用 Abort() 方法可销毁线程。

线程池

每创建一个线程,就会占用系统开销,从操作上来讲,每次都需要启动,比较麻烦。

好处:减少创建线程的时间和内存的消耗

当需要处理的任务数量多时,就需要线程池。线程池就是用来存放线程的容器。

 线程池的最多管理线程数量=处理器数*250


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值