POSIX线程详解[收集].pdfVIP

  1. 1、本文档共27页,可阅读全部内容。
  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文档。上传文档
查看更多
第一部分: /developerworks/cn/linux/thread/posix_thread1/index.html 第二部分: /developerworks/cn/linux/thread/posix_thread2/ 第三部分: /developerworks/cn/linux/thread/posix_thread3/ POSIX 线程详解 一种支持内存共享的简捷工具 级别: 初级 Daniel Robbins ( drobbins@ ), 总裁 /CEO, Gentoo Technologies, Inc. 2000 年 7 月 01 日 POSIX (可移植操作系统接口) 线程是提高代码响应和性能的有力手段。 在本系列中, Daniel Robbins 向您精确地展示在编程中如何使用线程。其中还涉及大量幕后细节,读完本系列 文章,您完全可以运用 POSIX 线程创建多线程程序。 线程是有趣的 了解如何正确运用线程是每一个优秀程序员必备的素质。 线程类似于进程。 如同进程, 线程 由内核按时间分片进行管理。 在单处理器系统中, 内核使用时间分片来模拟线程的并发执行, 这种方式和进程的相同。 而在多处理器系统中, 如同多个进程, 线程实际上一样可以并发执 行。 那么为什么对于大多数合作性任务, 多线程比多个独立的进程更优越呢?这是因为, 线程共 享相同的内存空间。 不同的线程可以存取内存中的同一个变量。 所以, 程序中的所有线程都 可以读或写声明过的全局变量。如果曾用 fork() 编写过重要代码,就会认识到这个工具的 重要性。为什么呢?虽然 fork() 允许创建多个进程,但它还会带来以下通信问题 : 如何让 多个进程相互通信, 这里每个进程都有各自独立的内存空间。 对这个问题没有一个简单的答 案。虽然有许多不同种类的本地 IPC ( 进程间通信),但它们都遇到两个重要障碍: 强加了某种形式的额外内核开销,从而降低性能。 对于大多数情形, IPC 不是对于代码的 “自然 ”扩展。通常极大地增加了程序的复杂 性。 双重坏事 : 开销和复杂性都非好事。如果曾经为了支持 IPC 而对程序大动干戈过,那么您 就会真正欣赏线程提供的简单共享内存机制。由于所有的线程都驻留在同一内存空间, POSIX 线程无需进行开销大而复杂的长距离调用。只要利用简单的同步机制,程序中所有 的线程都可以读取和修改已有的数据结构。 而无需将数据经由文件描述符转储或挤入紧窄的 共享内存空间。仅此一个原因,就足以让您考虑应该采用单进程 / 多线程模式而非多进程 / 单 线程模式。 线程是快捷的 不仅如此。线程同样还是非常快捷的。与标准 fork() 相比,线程带来的开销很小。内核无 需单独复制进程的内存空间或文件描述符等等。这就节省了大量的 CPU 时间,使得线程 创建比新进程创建快上十到一百倍。 因为这一点, 可以大量使用线程而无需太过于担心带来 的 CPU 或内存不足。使用 fork() 时导致的大量 CPU 占用也不复存在。这表示只要在程 序中有意义,通常就可以创建线程。 当然,和进程一样,线程将利用多 CPU 。如果软件是针对多处理器系统设计的,这就真的 是一大特性 (如果软件是开放源码, 则最终可能在不少平台上运行) 。特定类型线程程序 (尤 其是 CPU 密集型程序)的性能将随系统中处理器的数目几乎线性地提高。如果正

文档评论(0)

蔡氏壹贰 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档