多线程网络编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AsiaInfo Technologies (China), Ltd. 多线程网络编程 课程目标 理解应用系统日志机制,熟练使用日志接口 掌握socket编程基础,能理解socket封装类 掌握posix多线程编程基础 能轻松快速构建稳定的、可扩展的多线程服务器 课程内容 应用系统的日志机制介绍 深入Posix编程 深入Socket编程 构建多线程网络服务器 POSIX编程 POSIX标准概述 线程的创建、运行和退出 互斥锁编程 读写锁编程 条件变量编程 线程池编程 POSIX编程-标准概述 1、POSIX是Portable Operation System Interface的缩写,意即可移植的 操作系统接口。它是由IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师协会)制定的,目的是为了提高UNIX 环境下应用程序的可移植性。 2、POSIX.1标准:IEEE在1990年对IEEE Std 1003.1-1988版做了少量 修改,并形成了IEEE Std 1003.1-1990标准。之后被ISO/IEC采纳,形 成了ISO/IEC 9945-1:1990标准,也就是我们常说的POSIX.1标准。该 标准主要定义了系统级的C语言应用接口。在1996年又推出了 POSIX.1标准的第二版(即ISO/IEC 9945-1:1996 )。 1003.1b-1993:实时编程的标准 1003.1c-1995:多线程的标准(修订版:IEEE Std 1003.1-2001) 1003.1g-1996:协议独立接口标准,socket和XTI编程接口 POSIX编程-标准概述 3、Open Group标准 Open Group是由X/Open公司和OSF(开放软件基金会)在1986年成立,是代表厂家、工业界最终用户、政府和学术结构的国际组织。 Unix 95标准:即X/Open独立Unix规范,1994年定稿,共定义了1170个接口。 Unix 98标准:即X/Open独立Unix规范第二版,1997年3月发表,是Posix.1标准的超集,接口也增加到1434个。 4、其它线程标准 Win32线程:运行于微软平台。 OS/2线程:运行于OS/2平台。 Solaris线程:也被称为UI线程,是Sun公司在Posix发布之前开发的 Linux线程:运行于Linux系统平台,并不遵守POSIX标准。最新内核版本支持NPTL(Native Posix Thread Library)。 POSIX编程-线程与进程 进程与线程 进程 是一种操作系统实体,是一种资源单位,由线程、地址空间和进程资源组成。 线程 是一组单独的执行序列,同一进程内的线程共享进程资源;线程会维护运行所需的各种信息:线程ID、优先级、信号掩码、指令指针、一组寄存器等等。 多线程与多进程的比较 多线程更节省系统资源,线程切换的开销也更小。 进程内的线程同步较进程间的线程同步开销更小,因为进程间的线程位于不同的地址空间,一般需要OS内核的干预。 多进程之间的通讯一般要通过共享内存或IPC机制实现,而多线程之间是“天生”共享进程资源的。但是,为了同步多线程对共享资源的访问,多线程也需要付出不小的代价。 多线程之间没有内存边界保护,因此,也使整个进程的稳定性降低。 多线程也更难以调试。 POSIX编程-线程与进程 进程与线程关系类比图 POSIX编程-线程相关的基本概念 并发和并行 并发通常是针对单处理器、多线程而言,是一种基于分时的虚拟并行。 并行通常是针对多处理器而言,多个线程同时在不同处理器上执行。 互斥锁(mutual exclusive lock) 通过加锁和解锁来保护共享资源的一种线程同步机制。 读写锁(read-write lock) 通过互斥实现线程同步。 对共享资源的读操作可以同时进行,但修改操作必须采用独占方式。 POSIX编程-线程相关的基本概念 条件变量(condition variable) 通过“发信号”来实现线程同步的机制。 需要与互斥锁结合使用,通知等待线程共享数据的状态已经发生了变化; 可重入函数(reentrant) 可重入函数是多线程安全。 不可重入函数一般都涉及静态结构或缓冲区,如asctime,strtok。 某些不可重入函数提供了可重入版本,一般以_r结尾,如: gethostbyname ? gethostbyname_r POSIX编程-线程相关的基本概念 线程调度策略(schedule policy) 线程调度是指为就绪状态的线程分配处理器。POSIX定义了基于优先级 的调度模型,每个优先级对应一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档