Win32多线程程序设计.pdf
文本预览下载声明
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 》的内容兼
具理论和实际,轻薄短小的身形则在大部头书当道的今天让我们心情轻松。这是一
显示全部