关于《Java2核心技术 卷二:高级特性的 (V1.3)5E》的翻译

我不知道有多少人看过这本教材,当然这里所指的是由几位国人翻译的中文版,机械工业出版社出版(!),我在逛过的大大小小的计算机书店都有意无意地看到过这本书,而且我手头这本已经是它的第八次印刷了,印数也已逼近2W(估计现在已经超过了),此书这么受广大读者的追捧,在如今形形色色、多如牛毛的计算机书籍中也算得上是牛B的了。不知道大家选此书作参考,是冲着《Core Java》的名头和内容去的,还是此书确实翻译得十分了得、概念原理紧扣原意,阐述得简单明了。

为学习Java的多线程技术,我找来这本翻译的教材,读完了第一章的第一段落。它简单回顾了操作系统中多任务的概念,以便在下文引出多线程的主题(该书的第一章讲的就是Java的多线程编程)。译文如下:

也许你已经非常熟悉多任务运行的概念了。使用多任务运行特性时,仿佛是在同一个时间内运行多个程序。例如,你可以在编辑或者发送传真的时候进行打印操作。当然,你必须拥有一台多处理器计算机,这实际上是由操作系统将资源分成许多小块,然后再分配给每个程序使用,这些程序看起来就像是在并行运行一样。之所以能够进行这样的资源分配,原因是虽然你认为你正在让计算机忙于接受(比如)数据的输入,但是实际上CPU在大部分时间内确是无所事事的。(当你进行高速数据键入时,每键入一个字符需要大约二十分之一秒的时间,但对于计算机来说,这是一个很长的时间间隔。)

我从网上找来的原文如下:

You are probably familiar with multitasking in your operating system: the ability to have more than one program working at what seems like the same time. For example, you can print while editing or sending a fax. Of course, unless you have a multiple-processor machine, the operating system is really doling out CPU time to each program, giving the impression of parallel activity. This resource distribution is possible because although you may think you are keeping the computer busy by, for example, entering data, much of the CPU's time will be idle.

译文最后括弧的那句话没有在原文找到,不知道是所谓的“译者注”,还是原文修改时去掉了(原文来自该书的第7版),这倒无所谓。

关键是看译文第4句话和原文第3句话,为清晰起见,我将它们加了下划线。我所理解的原文的意思是说:在多处理器计算机上,只要给每个任务分配一个处理器就可以实现多任务了。但在单处理器计算机上实现多任务,就需要把CPU的执行时间(也是系统资源的一种)通过进程调度,分配给不同的任务,即操作系统多道程序设计(MultiProgramming)的基本原理。而译文的意思就是多任务必须在多处理器计算机上实现,而不能用到单处理器计算机上。那在我们PC机上跑的LinuxWindows NTOS实现的多任务又如何解释呢?当然,我对这些的理解也是处在懵懂状态,并且很有可能我是错的。

但如果我的理解是正确的,那么我想问一句:一本经典的Java初级教程,被翻译得在开篇第一段就出现这种错误的概念理解,那我还有什么理由继续接受您的误导?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值