xiaoweiChen / CPP-Concurrency-In-Action-2ed-2019

:book: 作为对《C++ Concurrency in Action - SECOND EDITION》的中文翻译。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2.3 第一段难以读懂

sdutwsl opened this issue · comments

原文:

Suppose you want to write a function that creates a thread to run in the background but passes back ownership of the new thread to the calling function rather than waiting for it to complete, or maybe you want to do the reverse: create a thread and pass ownership in to some function that should wait for it to complete. In either case, you need to transfer ownership from one place to another.

本文:

假设要写一个在后台启动线程的函数,并想通过新线程返回的所有权去调用这个函数,而不 是等待线程结束再去调用;或完全与之相反的想法:创建一个线程,并在函数中转移所有 权,都必须要等待线程结束。所以,新线程的所有权都需要转移。

我觉得:

假定你编写了一个创建了新线程的函数,该函数需要将新线程的所有权返回给调用者(而非等待新线程完成);或者相反的,你创建了一个线程并希望将它的所有权转移给接下来调用的函数的内部(这些函数将会等待线程完成)。无论哪种情况,你都需要将线程的所有权从一个调用者转移到另一个调用者。

我觉得本文这个翻译太难懂了,但是英文原版一看就知道讲的什么情况了,建议修改下。

哈哈,参考一下这段话

翻译是译者用自己的**,换一种语言,对原作者想法的重新阐释。鉴于我的学识所限,误解和错译在所难免。如果你能买到本书的原版,且有能力阅读英文,请直接去读原文。因为与之相较,我的译文可能根本不值得一读。

— 云风,程序员修炼之道第2版译者

别对个人开源翻译抱有太大的期待,毕竟个人的能力有限,所能覆盖到的角度也是有限。

读英文易懂是因为英文的写作方式是这样的,习惯了也就容易懂了。中文的写作方式和英文不同,所以翻译需要将英文的行文变成中文的行文,这就很有难度了。从而,直译的方式通常会让文章更难懂。

感谢你的建议,我会考虑再下一轮校对的时候尽可能更贴近中文的行文。

本书翻译的不是很好,如果觉得难懂,还是建议直接读英文原版。