mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-08-04 23:02:44 +00:00
fix typo
This commit is contained in:
@@ -41,7 +41,7 @@ func makeThumbnails2(filenames []string) {
|
||||
|
||||
这个版本运行的实在有点太快,实际上,由于它比最早的版本使用的时间要短得多,即使当文件名的slice中只包含有一个元素。这就有点奇怪了,如果程序没有并发执行的话,那为什么一个并发的版本还是要快呢?答案其实是makeThumbnails在它还没有完成工作之前就已经返回了。它启动了所有的goroutine,每一个文件名对应一个,但没有等待它们一直到执行完毕。
|
||||
|
||||
没有什么直接的办法能够等待goroutine完成,但是我们可以改变goroutine里的代码让其能够将完成情况报告给外部的goroutine知晓,使用的方式是向一个共享的channel中发送事件。因为我们已经知道内部的goroutine只有len(filenames),所以外部的goroutine只需要在返回之前对这些事件计数。
|
||||
没有什么直接的办法能够等待goroutine完成,但是我们可以改变goroutine里的代码让其能够将完成情况报告给外部的goroutine知晓,使用的方式是向一个共享的channel中发送事件。因为我们已经确切地知道有len(filenames)个内部goroutine,所以外部的goroutine只需要在返回之前对这些事件计数。
|
||||
|
||||
```go
|
||||
// makeThumbnails3 makes thumbnails of the specified files in parallel.
|
||||
|
Reference in New Issue
Block a user