2006/12/26

“同步”和“异步” (Sync and async)

在日常生活中,我们经常听到说“两件事同步进行”,意思是说,这两件事同时进行,这里强调的是同时、独立的概念。

在程序开发过程中,也会遇到“线程同步” (Thread Synchronization) 这种说法,是说防止两线程争用同一个共享资源,线程对共享资源的使用有先后之分。而另一种说法——“线程异步”——是说两线程同时运行,其中一个往往会在结束后以“异步回调” (Asynchronous Callback) 的方式通知宿主线程。

发现问题了吗?程序开发中的“同步”和日常生活中的“同步”,表达的概念相反,而“异步”则与日常生活中的“同步”相近。也许你会认为这是当初翻译时用词的问题,但事实上这是英语的问题,synchronize 本身就有“同进发生”的意思。synchronization 作为一个技术名词,含义发生了变化,强调一致性 (Babylon English-Simplified-Chinese dictionary). 巧合的是,即使有变化,仍然能继续用“同步”也能表达其意义,我的理解是“在同一基准上的步骤” :-p

语言是个奇妙的东西,不是么?

没有评论: