读书札记电脑系统篇.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
读书札记电脑系统篇.pdf

D:\D 盘majun文档\微机学习札记\读书札记002\基于NET的多线程编程入门.doc 读书札记 电脑系统篇 马 军 2009-10 1 D:\D 盘majun文档\微机学习札记\读书札记002\基于NET的多线程编程入门.doc 基于NET 的多线程编程入门 2006.03.12 多线程在构建大型系统的时候是需要重点关注的一个 重要方面,特别是在效率(系统跑得多快?)和性能(系统 工作正常?)之间做一个权衡的时候。恰当的使用多线程可 以极大的提高系统性能。 *什么是线程? 每个正在系统上运行的程序都是一个进程。每个进程 包含一到多个线程。进程也可能是整个程序或者是部分程序 的动态执行。线程是一组指令的集合,或者是程序的特殊段 , 它可以在程序里独立执行。也可以把它理解为代码运行的上 下文。所以线程基本上是轻量级的进程,它负责在单个程序 里执行多任务。通常由操作系统负责多个线程的调度和执 行。 *什么是多线程? 多线程是为了使得多个线程并行的工作以完成多项任 务,以提高系统的效率。线程是在同一时间需要完成多项任 务的时候被实现的。 使用线程的好处有以下几点: ·使用线程可以把占据长时间的程序中的任务放到后台去 2 D:\D 盘majun文档\微机学习札记\读书札记002\基于NET的多线程编程入门.doc 处理 ·用户界面可以更加吸引人,这样比如用户点击了一个按 钮去触发某些事件的处理,可以弹出一个进度条来显示处理 的进度 ·程序的运行速度可能加快 ·在一些等待的任务实现上如用户输入、文件读写和网络 收发数据等,线程就比较有用了。在这种情况下我们可以释 放一些珍贵的资源如内存占用等等。 还有其他很多使用多线程的好处,这里就不一一说明 了。 一些线程模型的背景 我们可以重点讨论一下在 Win32 环境中常用的一些模 型。 ·单线程模型 在这种线程模型中,一个进程中只能有一个线程,剩 下的进程必须等待当前的线程执行完。这种模型的缺点在于 系统完成一个很小的任务都必须占用很长的时间。 ·块线程模型(单线程多块模型 STA) 这种模型里,一个程序里可能会包含多个执行的线程。 在这里,每个线程被分为进程里一个单独的块。每个进程可 以含有多个块,可以共享多个块中的数据。程序规定了每个 块中线程的执行时间。所有的请求通过 Windows 消息队列 3 D:\D 盘majun文档\微机学习札记\读书札记002\基于NET的多线程编程入门.doc 进行串行化,这样保证了每个时刻只能访问一个块,因而只 有一个单独的进程可以在某一个时刻得到执行。这种模型比 单线程模型的好处在于,可以响应同一时刻的多个用户请求 的任务而不只是单个用户请求。但它的性能还不是很好,因 为它使用了串行化的线程模型,任务是一个接一个得到执行 的。 ·多线程块模型(自由线程块模型) 多线程块模型( MTA )在每个进程里只有一个块而 不是多个块。这单个块控制着多个线程而不是单个线程。这 里不需要消息队列,因为所有的线程都是相同的块的一个部 分,并且可以共享。这样的程序比单线程模型和 STA的执行 速度都要块,因为降低了系统的负载,因而可以优化来减少 系统 idle 的时间。这些应用程序一般比较复杂,因为程序员 必须提供线程同步以保证线程不会并发的请求相同的资源, 因而导致竞争情况的发生。这里有必要提供一个锁机制。但 是这样也许会导致系统死锁的发生。 *多线程在.NET 里如何工作? 在本质上和结构来说,.NET 是一个多线程的环境。有

文档评论(0)

weiwoduzun + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档