多线程与网络编程初步 .pdfVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 10章 多线程与网络编程初步 教学提示:Windows 是一个支持多任务的操作系统。当在一个程序中需要启动另外一 个程序时,需要用到多进程的编程方式。如果一个进程中有一些相似的任务需要同时推进, 可以为每个任务建立一个线程,从而形成多线程的编程。随着网络技术的广泛应用,网络 编程也越来越受到重视,网络编程主要使用Winsock 技术。 教学目标:掌握进程的创建与终止及相应的管理,了解线程的基本概念,并掌握线程 的创建及使用。能够使用Winsock 进行简单的网络编程。 10.1 Windows 的多任务 Windows 是一个支持多任务的操作系统。现在可以在欣赏电脑播放 CD 音乐的同时, 一边打印文件,一边编辑文件,这在以前的 DOS 操作系统的时候是不可能的。因为 DOS 是一个单用户、单任务的操作系统,一个时间段内只能运行一道程序。而 Windows 环境下 却可以做到这点,这都是得益于 Windows 的多进程处理及多线程处理功能。除了上述所说 的多任务的优点,再来看一下网络应用盛行的当今时代,多任务给我们带来的益处。作为 一个网络服务器,比如搜狐网站,每个时刻都要接收来自客户端的数量巨大的网络服务请 求,如果没有多任务环境的支持,而是处理完一个请求后再处理下一个,这样大家在上网 时就得在自己的机器前坐等其他的请求处理完后再得到响应。但实际情况却非如此,我们 可以随时上网,感觉不到其他人的存在,这就是操作系统的多任务也就是多进程、多线程 机制所带来的优越性。 在 VC 中如何设计一个多任务程序,甚至如何使用这种技术来实现网络应用,这都是 作为程序员首先要关心和掌握的问题。通过本章的学习,相信读者会达到这个目标。 10.2 Windows 的多进程程序设计 进程是由代码,数据和该进程中线程可用的其他系统资源,诸如文件、管道和同步对 象组成。每个进程都有一个私有的虚拟地址空间。一个进程至少包括一个线程(称为主线 程) ,并且每个进程都由主线程开始。在运行过程中可以建立新的执行线程。 例如,如果启动了 Microsoft Word 程序,则在内存中就存在了一个以 winword.exe 为 代码的进程,如果不关闭当前的 Word 程序,又通过开始菜单启动了 Microsoft Word ,则又 开始了一个以 winword.exe 为代码的进程。这两个进程的代码虽然一样,但所处的环境也 就是数据或其他系统资源是不同的,它们是两个不同的进程。如果再启动一个记事本程序, 则系统中又多了一个以 notepad.exe 为代码的进程,现在系统中已经存在了 3 个用户进程。 第 10章 多线程与网络编程初步 ·263 · 它们在同一段时间内都是向前推进的。 本节主要介绍如何在 VC 中进行多进程的程序设计,主要介绍如何创建新进程、终止 已有进程并设置进程的优先级。 10.2.1 创建新进程 Windows 是以对象的方式来管理进程的,它由 Win32 子系统来创建和维护,并且可以 由此进程的句柄来进行管理。进程的创建一般是在一个进程的线程中调用函数 CreateProcess( )来创建的,这个进程可以和原进程共享资源(例如句柄和变量) ,而且在 Windows 中,这两个进程不存在的父子关系,即使原进程终止后,这个新进程仍然可以继 续执行。 在介绍创建函数之前,先来看几个相关的数据结构。 1. 数据结构 (1) SECURITY_ATTRIBUTES 结构 该结构存放一个对象的安全描述符并指定是否继承返回的句柄。SECURITY_ ATTRIBUTES 结构定义如下。 typedef struct_SECURITY_ATTRIBUTES{ DWORD nLength; LPVOID lpSecurityDescriptor; BOOL bInheritHandle; }SECURITY_ATTRIBUTES 其中成员含义如下。 ① nLength :指定该结构大小。

文档评论(0)

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

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

1亿VIP精品文档

相关文档