C#之异步编程
多线程的分类
异步编程async/await
多线程异常处理
Timer线程
线程同步
本文档使用 MrDoc 发布
-
+
首页
多线程的分类
# 线程的特点 线程是CPU执行运算和控制的基本单元。包括程序寄存器和栈空间,特点是线程的创建、切换和中止都比进程要短。同一个进程中,所有的线程共享内存和文件资源,可以同时执行多个线程。线程的阻塞不会影响其他线程。 多线程更适用于多处理器(多核)的环境。 # 线程和进程的比较 并发性:都可以 资源方面:进程拥有资源的独立单位,线程只拥有必不可少的资源(轻量型资源) 开销方面:进程 大于 线程 独立性方面:进程间相互独立且资源不共享,同一个进程下的线程是共享资源的 通信方面:不同进程间的通信包括管道、消息队列、信号量等 调度方面:线程 比 进程快的多。进程要切换则整个进程切换,线程要切换则只切换单个线程。 # 多线程机制 线程分为硬件线程和软件线程 硬件线程:某CPU是4核8线程,意味着通过超线程技术每1个物理核心可以模拟2个逻辑核心,实现8个线程的能力(同一时间可以处理8个线程)。 软件线程:代码中创建的线程,理论上不限制创建线程的数量。 软件线程又分为用户线程和内核线程。 用户线程是由应用程序创建和管理,运行在用户空间,只能访问用户程序的资源,其创建、销毁、切换、调度等由应用程序控制,不需要操作系统内核参与。 内核线程是操作系统内核创建和管理,运行在内核空间,可以访问操作系统所有资源。其创建、销毁、切换、调度等需要操作系统内核的支持。 用户线程的优点:调度快,能够利用的表空间和栈空间多,在不支持多线程的操作系统中使用,线程切换发生在程序内部。 用户线程的缺点:由于内核将用户空间中的多个用户线程看做为单线程,所以阻塞一个用户线程就会阻塞所有用户线程,且线程内部没有时钟中断,只能用轮转调试的方式调试用户线程,当一个用户线程正在使用CPU,则其它线程无法使用CPU。 内核线程的优点:拥有更高的系统资源和服务的访问能力,因为内核线程都运行在内核空间上,所以可以在多个处理器上同时调度同一个进程中的多个线程,并行执行。 内核线程的缺点:开销大。 # 1. Thread线程 ## 线程状态 ## 线程的优先级 ## 前台线程和后台前程的区别 ## 线程控制和线程的生命周期 # 2. ThreadPool线程池 ## 工作者线程和IO线程的区别 ## 线程缓存 ## 线程比较 # 3. Task任务(线程池的进一步封装) ## 任务并行库和任务调度器 ## 创建任务 ## 任务返回值 ## 等待任务 ## 创建延续任务 ## 任务状态 ## 取消任务 ## 并行任务 # 4. Parallel并行任务 ## Parallel.Invoke ## Parallel.For ## Parallel.ForEach
张泽楠
2025年3月31日 13:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码