文档详情

《Win32多线程程序设计(完美版)》.pdf

发布:2018-03-29约字共页下载文档
文本预览下载声明
Win32 多线程程序设计 线程完全手册 Multithreading Applications in Win32 The Complete Guide to Threads Jim Beveridge Robert Wiener 著 侯 捷 译 译 序 侯 捷 thread 就是“线”。台湾计算机术语采用“绪”这个译词,“绪”就是“线” 的雅称,multithread 就是“多绪”。大陆计算机术语采用“线程”一词,multithread 就是“多线程”。 Threads (线程)是比processes (进程)更小的执行单元,CPU 的调度与时间 分配皆以 threads 为对象。 计算机领域中早就存在 threads 的观念和技术,但是早期个人电脑操作系统(主 要是 DOS ),别说multithread ,连multitask, m ultiuser 亦不可得。因此,从当时, 乃至延伸至今,threads 的概念和功能对许多非计算机专业科班出身者而言,属于一 种“崇高而难以亲近”的位阶,对许多计算机专业科班出身者而言,却又只是“操 作系统”这门课里高高在上的一个名词。 本书第一章第一句话值得玩味:“计算机工业界每有新的技术问世,人们总是 不遗余力地去担忧它是不是够重要。公司行号虎视眈眈地注意其竞争对手,直到对 方采用并宣扬这技术有多么重要,才开始急急赶上。不论这技术是不是真的很重 要,每一个人都想尽办法让终端用户感觉真的很重要。终端用户终于真的觉得需要 它了——即使他们完全不了解那是什么东西。” threads 大约就是这么一种东西吧。OS/2、Windows NT、Windows 95 这类“新 一代 PC 操作系统”初上市时,便一再强调其抢先式多任务(preemptive multitasking ) 的多线程(multithreaded )环境。拜强势行销之赐,霎时间线头到处飞舞,高深的 译序 计算机术语在街巷里弄之间传播了开来,颇有点 “Neural Fuzzy ”洗衣机的味道。 这倒也算是好事! 搞不清楚 threads 是什么,对终端用户而言或许没有关系,对技术人员可就不 妙。Threads 绝对可以缩短程序的执行时间吗?应该尽量多产生 threads 来帮助程序 工作吗?任何种类的程序都可以获得 multithreads 的好处吗?错!错!错!似是而 非的观念可能会把你的程序带往更坏(而非更好)的境界。 Threads 不是新东西,但它借着 Windows 的庞大装机量初次广泛进入个人电脑 世界,带给个人电脑巨大的冲击。产生 threads 毫无困难,要让它们分工容易,而要 让它们合作,那可就得花相当多的心思。Threads 不一定带来好处,运用不当的话, 它会在执行效率上惩罚你。 Threads 是 Win32 操作系统和 Win32 程序设计不可或缺的重要环节,每一本 重量级 Win32 程序设计书籍都不会忽略这个题目(请参考附录 B )。但是这些书多 半仅以一章(甚至只是一节)来介绍这个题目。不够,真的不够,我们缺乏一本兼 具理论并重实际的 threads 专著。《Multithreading Applications in Win32 》的内容兼 具理论和实际,轻薄短小的身形则在大部头书当道的今天让我们心情轻松。这是一 本导入性书籍,在 threads 专著里算是比较容易入门的。但是你必须知道,threads 不可能让你轻松学习!同步控制、多线程通讯、数据一致性……样样耗费你的心 神,考验你专心致志的程度。读这本书,还请你武装一下自己的精神。 对于中译本,我有以下两点说明: 1. 译本内的程序实例直接取自书附光盘。如果与英文版书面代码稍有出入,恐 怕是因为作者直接在实际程序上做了点小变动而未能及时反应到书面。如果 出现这种差异,我会在程序代码列表之后以译注的方式告诉你。 2. 译本保留了相当多的原文技术术语,主要是考虑本书的潜在读者层。如果不 采用原文术语,可能各位反而要倒译回去半看半猜,那么译本的价值就适得 译序 其反了。许多地方我不厌其烦地在中文术语后面加上原文术语,为的也是同 样的原因。 3. Multithreading 非常重要。当支持多处理器(multiprocessor )的操作系统逐 渐普及时,具备多处理器的个人计算机也逐渐普及。我相信,多线程程序设 计是每一位技术人员都必须面对的技术。即便现在,多线程能够提高多人、 多任务程序的使用者接口(UI )反应度,同样也是高阶技术人员应该追求的 目标。 侯捷 新竹 1997.05.31 jjhou@ (繁体中文) (简体中文) 函数索引 _begin
显示全部
相似文档