- 9
- 0
- 约7.96千字
- 约 36页
- 2021-03-11 发布于黑龙江
- 举报
ASP.NET多线程编程(一)
讲师:邵志东
课前准备
• Dot Net FrameWork
• VS.NET 2002/2003
• C#/VB.NET
• Level 200
议程
• 线程原理概述
• .NET下的多线程编程
• 异步编程
• ASP.NET多线程编程
线程基本概念
• 线程是程序执行的基本原子单位. 一个进程可以由多个线
程组成.
• 每个线程都维护异常处理程序、调度优先级和一组系统用
于在调度该线程前保存线程上下文的结构。线程上下文包
括为使线程在线程的宿主进程地址空间中无缝地继续执行
所需的所有信息,包括线程的CPU 寄存器组和堆栈。
• 在分布式编程中,正确使用线程能够很好的提高应用程序
的性能及运行效率.实现原理是将一个进程分成多个线
程,然后让它们并发异步执行,来提高运行效率.
• 并发执行并不是同时执行( 占有CPU),任意时刻还是只能
有一个线程占用CPU,只不过是它们争夺CPU频繁一些,
感觉到他们似乎都在运行.
进程举例
设一个进程要完成两个任务:任务1和任务2,并且任务1
要经历: A1-B1-C1三个步骤才能完成;任务2要经历:
A2-B2-C2三个步骤才能完成。
1. 如果两个任务同步执行的话完成两个任务是这样执行的:
花费时间段: 1 2 3 4 5 6
A1-B1-C1-A2-B2-C2
这样从A1一直到c2只能一个一个地执行. 当A1 占用CPU
执行时,从B1到C2线程只能在等待.
2. 如果两个任务异步执行的话,完成两个任务是这样执行的:
花费时间段: 1 2 3 4 5 6
A1-B1-C1
A2-B2-C2
这样,任务1和任务2就分成两个独立的执行对象.
什么时候用线程?
• 一般情况下,如果多个线程在执行时都要抢占某
一个资源或某几个资源,则最好不用异步线程执
行.因为它们是并发执行,很可能同时争夺某个资
源有CPU,这时要么执行资源分配算法(比如要判
断哪个线程优先级高,这要花费时间),或者是按时
间片算法(这样要付出轮询CUP/交接/让出CPU
所需的时间).
• 如果多个线程所需要的系统资源是比较均匀的,
这时完全可以让它们异步并发执行,
使用线程的缺点
• 统将为进程和线程所需的上下文信息使用内存。
因此,可以创建的进程、AppDomain 对象和线
程的数目会受到可用内存的限制。
• 跟踪大量的线程将占用大量的处理器时间。如果
线程过多,则其中大多数线程都不会产生明显的
进度。如果大多数当前线程处于一个进程中,则
其他进程中的线程的调度频率就会很低。
• 使用许多线程控制代码执行非常复杂,并可能产
生许多错误。
• 销毁线程需要了解可能发生的问题并对那些问题
进行处理。
议程
• 线程原理概述
• .NET下的多线程编程
• 异步编程
• ASP.NET多线程编程
.NET下的多线程编程
• Thread类的使用
• 带参数线程
• 委托与线程
• 应用程序域
• 临界区操作
System.Threading
• 提供一些使得可以进行多线程编程的类和
接口。此命名空间包括管理线程组的
ThreadPool 类、使得可以在指定的时间后
调用委托的Timer 类以及用于同步互斥线
程的Mutex 类。System.Threading 还提
供用于线程调度、等待通知和死锁解析的
类。
• using System.Threading;
您可能关注的文档
最近下载
- (高清版)C-H-T 9012-2011 基础地理信息数字成果数据组织及文件命名规则.pdf VIP
- Unit6 Numbers in life A let's learn(课件) 人教PEP版(2024)英语三年级下册.pptx VIP
- 2026年重庆高考物理考试卷及答案.docx VIP
- 2025年新疆高考语文试卷及答案.docx VIP
- 工程断裂力学课件.ppt
- 部编版六年级语文下册导学案(全册).docx VIP
- 大足石刻宝顶山景区讲解词(完整版).pdf VIP
- 最新2026年时事政治题单招标准卷.docx VIP
- 伟思医疗公司2019年财务分析研究报告.docx
- 外国名家哲理短文40篇重点.doc
原创力文档

文档评论(0)