异步编程线程概述及使用

异步编程线程概述及使用

ID:23004735

大小:613.47 KB

页数:21页

时间:2018-11-02

异步编程线程概述及使用_第1页
异步编程线程概述及使用_第2页
异步编程线程概述及使用_第3页
异步编程线程概述及使用_第4页
异步编程线程概述及使用_第5页
资源描述:

《异步编程线程概述及使用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、异步编程:线程概述及使用从此图中我们会发现.NET与C#的每个版本发布都是有一个“主题”。即:C#1.0托管代码一C#2.0泛型一C#3.0LINQ-C#4.0动态语言一C#5.0异步编程。现在我为最新版本的“异步编程”主题写系列分享,期待你的查看及点评。传送门:异步编程系列目录示例:异步编程:线程概述及使用.rar做交互式客户端应用程序,用户总希望程序能时刻响应ui操作;做高性能服务器开发,使用者总希望服务器能同时处理多个请求……等等,这时我们可以使用多线程技术来保证ui线程可响应、提高服务器吞吐量、提升程序处理速度,设置任务优先级进行调度……多线程技术只是多个线程

2、在操作系统分配的不同时间片里执行,并不是程序开12个线程12个线程都在同一个“时间点”执行,同一“时间点”能执行多少线程由CPU决定,各个执行线程的衔接山操作系统进行调度。即,在线程数量超出用于处理它们的处理器数量的情况K,操作系统将定期为每个线程调度一个时间片来控制处理器,以此来模拟同时并发。在认识线程前,我们需要了解下CPU,了解下进程。多核心CPU超线程CPU1.多核心处理器(CPU)指在一块处理器(CPU)屮含有多个处理单元,每一个处理单元它就相当于一个单核处理器(CPU)。因此,多核处理器的功能就相:当于多台单核处理器电脑联机作战。2.超线程处理器(CPU)

3、指在一抉CPU中,用虚拟的方法将一个物理核心模拟成多个核心(一般情况是一个单物理核心,模拟成二个核心,也即所谓的二线程。只有当线程数比物理核心数多J•能叫超线程。如四核四线程并不是超线程,而四核八线程才能叫超线程)。3.优缺点:1)多核心是真正的物理核心,一块多核心的处理器(CPU),就相当于多块单核心的处理器(CPU)相互协作。因此,从理论上说,多核心比超线程具有更高运兑能力。扯然多核心比超线程的运算速度快很多,但多核心也有一个明显的缺点,那就是多核心的使用效率比超线程处理器(CPU)低。因为,多核心在处理数据时,它们相互“合作”的并不是很完美,常常某个核心需要等待

4、其他核心的计算数据,从而耽误时间,被迫怠工。另外,由于目前多核心都是采用共享缓存,这更使多核心的CPU运算速度减慢不少(因丸CPU读取Cache时是以行为单位读取的,如果两个硬件线程的两块不同内存位于同一Cache行里,那么当两个硬件线程同时在对各自的内存进行写操作时,将会造成两个硬件线程写同一Cache行的问题,它会引起竞争)。2)超线程是用虚拟的方法将一个物理核心虚拟成多个核心,它能够最人限度地利用现有的核心资源,具有较髙性价比。操作系统对多核处理器的支持主要体现在调度和中断上:1.对任务的分配进行优化。使同一应用程序的任务尽量在同一个核上执行。2.对任务的共享数

5、据优化。由于多核处理器(ChipMulti-Processor,CMP)体系结构共亨缓存(S前),可以考虑改变任务在内存中的数据分布,使任务在执行时尽量增加缓存的命屮率。3.对任务的负载均衡优化。当任务在调度时,出现了负载不均衡,考虑将较忙处理器中与其他任务最不相关的任务迁移,以达到数据的冲突最小。4.支持抢先多任务处理的操作系统可以创建多个进程屮的多个线程同时执行的效果。它通过以下方式实现这一点:在耑要处理器时间的线程之间分割可用处理器时间,并轮流为毎个线程分配处理器时IXNV。当前执行的线程在.其时间什结朿时被挂起,而另一个线程继续运行。:当系统从一个线程切换到另

6、一个线程时,它将保存被抢先的线程的线程上下文,并重新加载线程队列中下一个线程的已保存线程上下文。进程和线程1.进程进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程屮创建的资源随着进程的终止而被销毀,所使用的系统资源在进程终止时被释放或关闭。2.线程线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程。主执行线程终止了,进程也就随之终止。每个线程都维护异常处理程序、调度优先级和线程上下文。(线程上下文,当前执行的线程在其时间片结束时被挂起,而另一个线程继续运行。当系统从一个线程切换

7、到另一个线程时,它将保存被抢先的线程的线程上下文,并重新加载线程队列中下一个线程的已保存线程上下文)3.关系操作系统使用进程将它们正在执行的不同应用程序分开,.NETFramework将操作系统进程进一步细分为System.AppDomain(应用程序域)的轻量托管子进程。线程是CPU的调度单元,是进程中的执行单位,一个进程中可以有多个线程同吋执行代码。操作系统屮,CPU的两种党争策略操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。1.在时间八算法中,所有的进程排成一个队列。操作系统按照他们的顺序,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。