posix多线程程序设计(中文版)-带书签_posix多线程程序设计,posix编程-C/C++工具类资源

上传者: xtcgch | 上传时间: 2019-12-21 22:05:33 | 文件大小: 8.56MB | 文件类型: pdf
经典的POSIX多线程程序设计,在POSIX系统下进行C/C++多线程编程必看的一本书。本书的读者对象是有C/C++编程基础,但是没有线程知识。本书按照章节,由浅入深,从基本的线程概念,到线程私有数据,实时调度,再到barrier,读写锁,工作队列管理器,并且配合大量注释和实例来演示。
ProgrammingWith POsiXThreadsPOSIX多线程程序设计[美] Davide. Butenhoff著于磊曾刚译忄因电力出照内容提要枣书深入描述了TEE的开放系统接可标准一 POSIX线程,通常称为 Pthreads标准。本书首先解释了线程的基本概念,每括异步编程、线程的生命周期和间步机:然后讨论了些高絞话题,包括属性对象、线程私有数据和实时调度。此外,本书还讨论了调度的阿题,并给出了避免错误和提髙性能等问题的有价值的建议。本书使用了大量注释过的实例来解轟实际的概念,并包括Phed的简单索引和对标准化的晨望本书遁合有经验的C语言程序员阅读,也适合多线程编程人员参考纽书在版编目(C|P)数据POSⅨ多线程程序设计/(美)布滕霍夫( Butenhoff,R》著:于磊,曾刚译.一北京:中国电力出版社,2003ISBN75083-1395-XIP..Ⅱ①布②于③曾.,Ⅲ程序没计Ⅳ.TP3111中国版本图书馆CP数据核字(202)第110540号蕃作权合同登记号图字:01-20020712号Authorized translatlon from the English language edion, entitled Programming withPOSIX Threads by David A. Butenhof, publy, Copyrighto1997All rights reserved. N part of this book may be reproduced or transmitted in anyform or by any means, electronic or mechanical, including photocopying, recording ot byany infomation storage retrieval system, without permission from the Publisher.CHINESE SiMPLIFIED language edition published by China Electric Power PressCopyright的2003本书由培生集团授权出版。中国电力出版社出版、发行北京三里河路6号100044httpf/wwwinfopuw'er.com.cn汇鑫印务限公司印刷各地新华书店经2003年4月第一版2003年4月北京第印刷787毫米×102毫米16开本20.75印张505千字定价890元版权所有翻即必究〔本书如有印装质量问题,我社发行部负责退换予本书是有关“线程”( thread)和如何使用“线程”的。在计算机中,“线程”是种能够实现某种功能的基本软件单元。线稈比传統的进程 process)更小巧、更怏捷、更易操作实际上;一旦在操作系统中引入线程,就可以将进程看作包含了数据地址空间、文件和一个(成多个)数据处理线程的综合应用使用线程构建的应用程序能够更加有效地利用系统资源,使用户的界面更加友好,在多处理器系统中不但运行十分快速,而且更加易于维护。为达到上述目的,你只需要在程序中添加相应的几个简单函数调用,即可调整成另一种编程思路。通过仔细阅读本书,我希望能够帮助你实现上述目标本书讲述的线程模型通常被称为 Pthreads,或者 POSIX threads,更正式的名称应该是POSX1003.le-1995标准。随后还将提供丶些其他的名称,不过目前你貝需记住 Pthreads就够了。在写本书时,SUN公司的Sola,Dga公司的 Digital UNIX、SGI公司的RX已经支持 Pthreads。其他一些主要的商用UNⅹ操作系统,像IM公司的AX和HP公的HPUX,不久也将支持线程模型,也许在你阅读木书的时候已经丈持 Pthreads也已经在 Linux利其他UNX系练中实现在个人电脑市场,做软公司的Wn32编程接口和BM的Os12都支持线程编程。这些线程模型与 Pthreads模型之间存在着一定的区别。为了有效地使用它们,首先必须理解并发、同步和调度等概念,剩下的航是语法和样式的问题,个经验丰富的程序员可以适应这些模型中的任何一个线程模型已经很成功地在应用领域中丿泛运用,下面仅是其中的一些:●有大规模科学计算的程序能够充分利用多处理器系统的高性能程序和库代码能被多线程程序使用的库代码●实时应用程序和库代码●对慢速外设〔如网络和人类)执行输入输出操作的应用程序和库代码读者对象4书适合熟悉在UNX系列操作系统上使用 ANSIC开发代码的高级程序人员阅读,并不要求具有线程或其他形状异步编程经验。第1章介绍有关概念和术语,使你能够继续阅读个书后续部分,建议你不要跳过。在阅读过程屮,你将发现关于线程各方面的有趣比喻和实例。最后我希望你能够自已独地使用线程编程。好了,祝你线程之旅愉快。关于作者我从一开始就参与 Pthreads标准的有关丁作,虽然最初的儿次会议我没有参加。最后,我被迫在犹他州的雪鸟滑雪场的防雪崩掩体中度过∫一周,观看来自世界各地的代表们向他们」的滑雪板上涂蜡。我本以为这是一个十分正式、乏味的会议,所以我没有带自己的滑雪板,只能租用滑设备在 Pthreads标准最后投票阶段,我同其他几个 POSIX丁作组设计线程同步接口和多处理器应用。我也帮助定义了 Aspen线程扩展规范,该规范让经成功应用于 X/Open XSH5我曾在DEC公可工作数年,从麻省分部到新罕布什尔州分部。我是DEC公司线程架构的创始人之…,并在 Digital UNIX4..上设计并实现了大部分的 Pthreads线程接口。我还帮助人们开发、调试线程代码超过八年之久。我的一个不成文的座右铭是“并发使生活更美好"。线程不是面包片,程序员也不是面包师,所以我们只做能够做的事情致谢可能读者并不关心这部分内容,但确实是我和朋友们以及本书合作者希望见到的。如果你是一个好奇的读者,请务必读下去尽管本书封面上只有我一个人的署名,但像木书这样的项目是不可能完全由一个人来完成的。因为我了解很多线程知识,至少在线程通信方面相当在行,所以我也可能不需任何帮眇与出…本关于线程的书。但结果是,本书要比假设的那木书更好。首先要感谢的是我的经理 Jean fullerton,他给我时间并鼓励我在τ作肘写书。感谢DECthreads组的其他同仁,他们是: Brian keane、 Webb scales、 Jacqueline Berg、 Richard love、Peter Portante、 Brian Silver、 Mark simons和 Steve john感谢 Garret Swart,当他还在 Digital系统研究中心工作时,就让我们了解POSX标准感谢 Nawaf bitar,他和 Garret一起通宵T作,实现了 Pthreads的第一个草案,并且不遗余力地推广 POSIX线程标准,让每个人都理解线程到底是个什么东西,没有 Garret,特别是如果没有 Nawaf, Pthreads可能不会存在,至少不会像现在这么妤(缺乏完美并不是他们的责任——生活本来如此)感谢参与设计cma、 Pthreads、UNX98、 DCE threads和 DECthreads的所有人的帮助他们是: Andrew birrell Paul borman、 Bob Conti、 Bill Cox、 Jeff denham、 Peter gilbert、Rick greer、 Mike grier、 Kevin Harris Ken Hobday、 Mike jones、 Steve neiman、 Bob Knighten、Leslie lamport、 Doug Locke、 Paula long、 Finnbarr p. Murphy、 Bill Noyce, Simon patience、Harold seigel、 Al Simons、 Jim woodward和 John zolnowsk特别感谢所有耐心审阅本书草稿的人们,他们是: Brian Kemighan、 Rich stevens、DaveBrownell. bill gallmeister、 lan Ginzburg、 Will Morse、 Bryan O' Sullivan、 Bob robillardDave ruddock和 Bil Lewis。感谢对结构和细节提出改进意见和建议的人们: Devang shah和Bart Smaalders帮助回答了一些有关 Solaris的问题, Bryan O'Sullivan建议使用“舀水的程序员”的比喻感谢 Addison Wesley longman F] John Wait和 Lana langlois,他们耐心地等待并鼓励第次写书的我努力写好这本书。感谢 Pamela Yee和 Erin Sweeney,他们管理了本书的整个出版过程。感谢所有帮助过我的人们。感谢我的妻子 Anne lederhos和我的女儿Amy、 Alyssa,感谢她们对我的支持和陪伴。感谢 Charles dodgson( Lewis carrol),他在其经典小说 Alice's Adventures in wonderland〈《艾丽丝漫游仙境》)、 Through the looking-Glass(镜中漫游》)和 The Hunting of the Snark(《捕猎蛇鲨》)中写了大量的关于线程编程的事情(译者注:是指小说中描写的多人之间的协调、并发T作,作者认为与线程间的同步和协调具有相似的含义)。序言第1章概述….舀水的程序员幽···血幽噜血■■■自■■■口■平■_■平L·昏■昏罾早平■卩卩甲罾警肀昏罾昏4平平昏罾1昏昏昏1斷■昏1■昏晋11山翟■如■西d旷■晶旷hanm12术语定义…13异步编程是直观的…4关于木书的实例…5异步编程举例16线程的好处7线程的代价08选择线程还是不用线程2219 POSIX线程概念第2章线程甲pd21建立和使用线程22线程的生命周期曾■T會32第3章同步…373.1不变量、临界区和谓词甲罪卩↓卩郾■郾看郾↓·T3互斥量3833条件变量…5934线程间的内存可视性第4章使用线程的几种方式∴…4.流水线1甲■曾昏個昏■18142T作组8943客户/服务器第5章线程高级编程5-次性初始化n11152属性11453取消.12054线程私有数据13755实时调度量鲁备14756线程和核实体16第6章POSX针对线程的调整1676.1 fork昏山t1山h,,1.1676.2e7363进程结束6. 4 stdiolt鲁·TTP日■日白'自甲1甲即甲目日血!‘=P平■昏■■Ida=t1765线程安全的函数l7866信号P■昏182第7章 Real code………,…,,,4---.2067.1扩展同步鲁11自會■■p看p山山血即■晷着甲4■20672工作队列管理器『甲目目·由即?日甲■1晶吾hmpp唱p血命血』甲■品甲“■2373对现存库的处理……243第8章避免调试的提示■着酽 eskd24881邐免不正确的代码.24982避免性能问题didP曾1血自幽甲p甲助D口1259第9章PoSⅨ多线程快速參考2639.1 POSIX10031c-1995选项血·=F■山lF4·P甲Ia26392POSⅨX1003.1c-l995限制.2649.3POSⅨX1003lc-1995接口265第10章标准化过程展望30310. 1 X/Open XSH5 [UNIX98]102POSⅨX10031…鲁4P日命·h.44即4日4·-T血d哪甲‘4品=F4目“!31110.3POSX1003.14参考文献…",…4…-.17因特网上的线程资源320概述he time has come, the Walrus saldro talk of mary things,Or shoes aind ships and sealing Waxoand kingsAnd why the鵡 boing hoAnd whether pigs have wings-ewis Carrol, Through the looking-Glass在计算机专用术语中,线程是指机器中连续的、顺序的属性集合。一个线程包含执行一系列机器指令所必须的机器状态,包括当前指令位置、地址和数据寄存器等。个UNX进程可以理解为一个线程加上地址空间、文件描述符和其他数据。某些UNⅨX版本支持“轻量级”或“变量级”进程,以便可以从进程中剔除部分或者所有数据,从而实现高效性能。既然线程和轻量级进程都需要地址空间、文件描述符等数据,那么区别何在?区别在于多个线程可以共享一个地址空间,而做不同的事情。在多处理器系统中,一个进程中的多个线程可以同时做不同的T作当计算机还活在玻璃洞穴中时(译者注:指计算机发展初期),需要处理事先准备好的穿孔卡片。整个外部世界都在等待计算的结果,顶多可能听到程序员的抱怨声。但是外部世界并不是一次只做-件事情,逐渐地,计算机开始模拟这种实际模式,增加多程序设计、多重处理、分时共亨、多处理器系统的能力,最终,实现了线程线程能够帮助你的应用程序走出洞穴。 Pthreads则能帮助你以-种优雅、高效、叮移植的方式完成这个厂作。木章简单介绍理解和使用线程所需要的基本知识,其他章节则会针对各个环节做进一步的详细解释1.1节给出了包含多个化喻的故事,以此说明线程的工作模式。这个故事并没有什么特别的,但在你理解我所讲的程序员和水桶的含义之前,可能显得有点怿12节给出了本书使用的基本概念和术语。其中最重要的一个概念需要在此特别介绍,也与全书会对一些重点特别强调的习惯是一致的异步任何两个彼此独立运行的操作是异步的

文件下载

评论信息

  • DNcx831 :
    嗯嗯嗯,不错!!!
    2019-10-16
  • hardbeyond :
    嗯嗯嗯,不错!!!
    2019-01-05
  • Alberteins :
    不清楚,还可以吧
    2018-09-14
  • qq_31392745 :
    还没看,看了再评论
    2018-04-28

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明