硬件学院 | 网络学院 | 游戏秘籍 | 求职技巧 | 企业管理 | 软件资讯 | IT导购 | 软件下载 | 源码下载
软件学院 | 安全资讯 | 图形图象 | 网络营销 | 电子商务 | 硬件资讯 | IT生活 | 教程下载 | 电影娱乐
网站首页    个人求职    单位招聘    高校联盟    猎头服务    培训服务    资讯中心    IT论坛
让每一个热爱IT的人都找到一份满意的工作!
文章搜索:
 您的位置首页->-> 软件学院-> .NET技术-> 线程处理
线程处理
作者:中国资讯网 来源:zixuen.com 加入时间:2005-5-12 www.cnitrc.com
Visual Studio.NET允许用户开发多条互不相干的多线程的应用程序。也就是说,当用户在执行一个程序的时候,也可以在另外一条的线程独立地运行另外一个任务程序,这种过程被称为自由线程(Free Threading),对于用户而言,自由线程概念的引入,使得应用程序对用户的响应将更加积极,因为任务处理器能够在某一个线程正在运行时,依然保持界面对用户的响应,只要对用户响应的线程正在运行。而且,自由线程在运行大型的程序的时候,也将回很有用,因为随着运行任务的增加,用户可以多开辟几个线程来运行程序。



1.1.1何时使用线程



需要用户交互的软件必须尽可能快地对用户的活动作出反应,以便提供丰富多彩的用户体验。但同时它必须执行必要的计算以便尽可能快地将数据呈现给用户。如果应用程序仅使用一个执行线程,则可以结合使用异步编程与 .NET 远程处理或使用 ASP.NET 创建的 XML Web services,以便在使用自己计算机的处理时间以外再使用其他计算机的处理时间,从而提高对用户的响应速度并减少应用程序的数据处理时间。如果您正在进行大量的输入/输出工作,则还可以使用 I/O 完成端口来提高应用程序的响应速度。



1.1.2 多个线程的优点



无论如何,要提高对用户的响应速度并且处理所需数据以便几乎同时完成工作,使用多个线程是一种最为强大的技术。在具有一个处理器的计算机上,多个线程可以通过利用用户事件之间很小的时间段在后台处理数据来达到这种效果。例如,在另一个线程正在重新计算同一应用程序中的电子表格的其他部分时,用户可以编辑该电子表格。

无需修改,同一个应用程序在具有多个处理器的计算机上运行时将极大地满足用户的需要。单个应用程序域可以使用多个线程来完成以下任务:

l 通过网络与 Web 服务器和数据库进行通讯。

l 执行占用大量时间的操作。

l 区分具有不同优先级的任务。例如,高优先级线程管理时间关键的任务,低优先级线程执行其他任务。

l 使用户界面可以在将时间分配给后台任务时仍能快速作出响应。



1.1.3 多个线程的缺点



建议您使用尽可能少的线程,这样可以使操作系统资源的使用率最低,并可提高性能。线程处理还具有在设计应用程序时要考虑的资源要求和潜在冲突。这些资源要求如下所述:

l 系统将为进程、AppDomain 对象和线程所需的上下文信息使用内存。因此,可以创建的进程、AppDomain 对象和线程的数目会受到可用内存的限制。

l 跟踪大量的线程将占用大量的处理器时间。如果线程过多,则其中大多数线程都不会产生明显的进度。如果大多数当前线程处于一个进程中,则其他进程中的线程的调度频率就会很低。

l 使用许多线程控制代码执行非常复杂,并可能产生许多错误。

l 销毁线程需要了解可能发生的问题并对那些问题进行处理。

提供对资源的共享访问会造成冲突。为了避免冲突,必须对共享资源的访问进行同步或控制。未能正确地使访问同步(在相同或不同的应用程序域中)会导致诸如死锁(两个线程都停止响应,并且都在等待对方完成)和争用条件(由于意外地出现对两个事件的执行时间的临界依赖性而发生反常的结果)等问题。系统提供了可用于协调多个线程之间的资源共享的同步对象。减少线程的数目使同步资源更为容易。

需要同步的资源包括:

l 系统资源(如通讯端口)。

l 多个进程所共享的资源(如文件句柄)。

l 由多个线程访问的单个应用程序域的资源(如全局、静态和实例字段)。

  相关文章:
.NET技术
ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库技术
其它类
工具软件
办公软件
本类阅读TOP10
 
关于我们   |   服务声明   |   使用帮助   |   广告合作   |   网站地图   |   友情链接   |   加盟合作   |   联系我们
Copyright © 2006 cnitrc.com Inc. All Rights Reserved. 浙ICP备05074295号
中国IT人才网 版权所有 网络实名:中国IT人才
未经书面授权严禁转载和复制本站的任何招聘信息和文章