网络程序设计-08-WinSock多线程编程v1.0.0.ppt

网络程序设计-08-WinSock多线程编程v1.0.0.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络程序设计-08-WinSock多线程编程v1.0.0.ppt

* Background provided by m62 Visualcommunications, visit for more information * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * 《信息安全管理》徐国爱—北邮出版 * Background provided by m62 Visualcommunications, visit for more information WinSock多线程编程 《网络程序设计》 * 回顾:WSAEventSelect模型 将套接字绑定到事件对象,当套接字有网络事件发生时,对应的事件对象变为受信状态,然后从受信的事件对象中获取网络事件详情,并对网络事件进行处理。 * WinSock多线程编程-引入 解决阻塞问题 ——使用多线程处理或使用非阻塞模式 非阻塞模式编程复杂,Winsock提供了一系列的I/O模型来简化非阻塞模式编程。前几次课我们已经学习了Select模型、WSAAsyncSelect模型和WSAEventSelect模型。 本次课我们学习如何使用多线程机制处理阻塞问题。 * WinSock多线程编程 多线程概述 Win32API对多线程编程的支持 CreateThread函数 Winsock多线程编程示例 小结 动手实践 * WinSock多线程编程 多线程概述 Win32API对多线程编程的支持 CreateThread函数 Winsock多线程编程示例 小结 动手实践 * 1. 多线程概述 简单的说,进程是应用程序的执行实例 ,线程是进程内部的一个执行单元。 每个进程至少有一个主执行线程,通常以main/ WinMain函数为入口点,主线程由系统自动创建。 用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。 每个线程有自己的入口函数,由用户创建和指定。 * 1. 多线程概述 多线程可以实现并行处理,避免了某项任务长时间占用CPU时间,也使得CPU被充分利用。 在单处理器(CPU)环境下,如果两个非常活跃的线程为了抢夺CPU控制权,在线程切换时会消耗很多的CPU资源,反而会降低系统的性能。这一点在多线程编程时应该注意 。 * 1. 多线程概述 Win32 SDK函数支持进行多线程的程序设计,并提供了操作系统原理中的各种同步、互斥和临界区等操作。 VC6中,MFC类库也实现了多线程的程序设计,使得多线程编程更加方便。 * WinSock多线程编程 多线程概述 Win32API对多线程编程的支持 CreateThread函数 Winsock多线程编程示例 小结 动手实践 * 2.Win32 API对多线程编程的支持 Win32提供了一系列的API函数来完成线程的创建、挂起、恢复、终结以及通信等工作,重要的函数如下。 (1)HANDLE CreateThread(..) 该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线程的句柄。 (2)DWORD SuspendThread(HANDLE?hThread) 该函数用于挂起指定的线程,如果函数执行成功,则线程的执行被终止。 * 2.Win32 API对多线程编程的支持 (3)DWORD ResumeThread(HANDLE?hThread) 该函数用于结束线程的挂起状态,执行线程。 (4)VOID ExitThread(DWORD?dwExitCode) 该函数用于线程终结自身的执行,主要在线程的执行函数中被调用。其中参数dwExitCode用来设置线程的退出码。 * 2.Win32 API对多线程编程的支持 (5)BOOL TerminateThread(HANDLE hThread, DWORD dwExitCode) 一般情况下,线程运行结束之后,线程函数正常返回,但是应用程序可以调用TerminateThread强行终止某一线程的执行。其不释放线程所占用的资源,一般不建议使用该函数。 (6)BOOL PostThreadMessage(..) 该函数将一条消息放入到指定线程的消息队列中,并且不等到消息被该线程处理时便返回。 * WinSock多线程编程 多线程

文档评论(0)

cai + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档