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 转移线程所有权

opened this issue · comments

第一段”假设要写一个在后台启动线程的函数,并想通过新线程返回的所有权去调用这个函数,而不是等待线程结束再去调用“对应原文为"Suppose you want to write a function that creates a thread to run in the background, but passes ownership of the new thread back to the calling function rather than waiting for it to complete",疑有误。

嗯,那你认为这句话怎么翻译比较好呢?

嗯,那你认为这句话怎么翻译比较好呢?

“假设要写一个在后台启动线程的函数,但将新线程的所有权传递回该函数,而不是等待该线程结束”应该是这个意思。

从原文来看,你这样直译没什么问题。不过,这句直译并不符合中文的阅读习惯,“假设..., 但是...,而不是”这样的句式至少我觉得非常奇怪。

觉得如下的语句怎么样?

假设要写一个在后台启动线程的函数,可以通过返回的所有权去调用这个函数,而非等待线程结束后再去调用。

从原文来看,你这样直译没什么问题。不过,这句直译并不符合中文的阅读习惯,“假设..., 但是...,而不是”这样的句式至少我觉得非常奇怪。

觉得如下的语句怎么样?

假设要写一个在后台启动线程的函数,可以通过返回的所有权去调用这个函数,而非等待线程结束后再去调用。

嗯,可能还是翻译之后意思有一些差别。我认为原文说的大概就是把新线程的所有权转移到调用创建新线程函数的函数里,就是新线程的所有权作为其创建函数的返回值,主要还是集中在新线程所有权转移这个点上,不知道这样理解和你的理解是否一致。

整段原文是这样的嘛:
(PS. 第二版的英文原版我在readme处给了连接,要是目前看的原文是第一版,可以去下载一下第二版)

Suppose you want to write a function that creates a thread to run in the background, but passes ownership of the new thread back 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.

其目的就是为了引出"Transferring ownership of a thread"这个主题。第一句,就是做了个假设,假设出现了这种情况,和另一种情况我们应该想什么样的办法来解决,那么就要使用到 线程的所有权转移 了。

你提出的问题这句话,只是这里假设的一种情况,所以也并不是本节的重点,可以不用太较真,只要文字的表述是相应的意思,其实就可以了。

最后,我认为你的理解没有问题。不过这里也暂时不修改,后面我会抽时间,将本书重修一遍的。

嗯,我也想给你几个阅读方面的建议。

  1. 建议不要逐句来抠一些意思,最好是从整段或从整节来看。从更大的角度来看,一两句话翻译,或理解错误,并不会影响整个章节的意思。理解了整个章节要表达的后,可以再回来对疑惑的点进行解析,确定自己的理解是否正确,或者相应的文字表述是否正确。
  2. 读书其实是个比较主观的过程,而翻译则是阅读后的一种复述,可以看作读书笔记的一种。翻译是掺杂了译者的一些主观感受的,所以我会建议读我译文的读者,结合原文一起来看。这样更有助于读者理解,并且判断自己的理解是否和原作者一样。如果与原作者一样,与译者不一样,那么翻译应该就是出错了。当然,最好的是能通过实践,对相应的概念有自己的理解。

希望我的建议,能对你的阅读有所帮助。:)

谢谢你的建议。目前我正在对照着原文和译文阅读,读到这句话的时候觉得意思上有些出入,于是想咨询一下译者,并没有逐句扣的意思。翻译好技术书籍是一件很困难的事情,很多时候并不能完全地传递原作者的意思,所以我十分佩服翻译技术书籍的译者。感谢你能够抽出时间来回复我,期待你的下一个译本。

要是对C++比较感兴趣,可以看下我已经完成/正在进行的译文:
C++17 STL Cook book
Concurrency with Modern C++