多线程在网络编程中应用.pptVIP

  1. 1、本文档共70页,可阅读全部内容。
  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文档。上传文档
查看更多
多线程在网络编程中应用.ppt

多线程在网络编程中应用 主要内容 1 WinSock的多线程编程原因 2 进程与线程在操作系统中的作用 3 进程工作状态以及在VC++中实现 4 线程的工作状态以及在VC++中实现 5 线程同步—共享资源访问 6 线程在Winsock中的应用 7 实例多线程网络应用程序 WinSock的两种输入输出模式 两种工作模式及优缺点 1 “阻塞”模式(Blocking Mode)同步模式 容易理解与编程方便 建立多个套接字连接来为多个客户服务的时候,或在数据的收发量不均匀的时候,或在输入输出的时间不确定的时候,性能低。 2 “非阻塞”模式 异步模式 代码编写复杂,不易理解。 I/O操作的随机性使得非阻塞模式显得难于操作。 所以,我们必须采取一些适当的对策,克服这两种模式的缺点,让阻塞和非阻塞套接字能够满足各种场合的要求。 对于非阻塞的套接字工作模式,进一步引入了五种“套接字I/O模型”,在第8章详细说明。 对于阻塞的套接字工作模式,则进一步引入了多线程机制。 进程在操作系统中的作用 进程概念 1.引入:用程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。 2.进程概念 进程最根本的属性是动态性和并发性。 进程定义为:程序在并发环境中的一次执行过程。 进程的状态和组成 进程的基本状态 新建状态(New) 就绪状态(Ready) 运行状态(Running) 阻塞状态(Blocked) 终止状态(Terminated) 进程创建函数实现 进程的创建通过CreateProcess()函数来实现。 CreateProcess()函数的原型声明如下:   BOOL CreateProcess(   LPCTSTR lpApplicationName, // 可执行模块名   LPTSTR lpCommandLine, // 命令行字符串   LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程的安全属性   LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程的安全属性   BOOL bInheritHandles, // 句柄继承标志   DWORD dwCreationFlags, // 创建标志   LPVOID lpEnvironment, // 指向新的环境块的指针   LPCTSTR lpCurrentDirectory, // 指向当前目录名的指针   LPSTARTUPINFO lpStartupInfo, // 指向启动信息结构的指针   LPPROCESS_INFORMATION lpProcessInformation // 指向进程信息结构的指针   ); 创建进程例子 CreateProcess(“c:\\test.exe“, ”-p“, NULL, NULL, FALSE, 0, NULL, NULL, si, pi); 终止进程与结束进程 TerminateProcess()强制结束其他的进程。 ExitProcess()函数即可在进程中的某个线程中使用,并将立即终止本进程的运行。 ExitProcess()函数原型为:   VOID ExitProcess(UINT uExitCode); 线 程 线程(Thread)是进程中实施调度和分派的基本单位 线程和进程的关系 ① 一个进程可以有多个线程,但至少要有一个线程;而一个线程只能在一个进程的地址空间内活动。 ② 资源分配给进程,同一进程的所有线程共享该进程的所有资源。 ③ 处理机分配给线程,即真正在处理机上运行的是线程。 ④ 线程在执行过程中需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。 线程的状态与管理 线程的状态 新线程态(New Thread) 可运行态(Runnable) 非运行态(Not Runnable) 退出(Exit) 线程的管理 线程创建 线程终止 线程等待 线程让权 引入线程的好处 ① 易于调度。 ② 提高并发性。 ③ 开销少。 ④ 利于充分发挥多处理器的功能。 C/C++多线程 在VC++6.0中,有两种多线程编程方法: 一是使用C运行时库及WIN32 API函数 另一种方法是使用MFC,MFC对多线程开发有强大的支持。 Visual C++提供的多线程运行时库又分为静

文档评论(0)

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

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

1亿VIP精品文档

相关文档