This commit is contained in:
Xargin 2017-05-02 18:00:28 +08:00
parent 4f9a6cd5a8
commit 7f9ba35f58

View File

@ -93,7 +93,7 @@ func main() {
} }
``` ```
其实你并不需要关闭每一个channel。只当需要告诉接收者goroutine所有的数据已经全部发送时才需要关闭channel。不管一个channel是否被关闭当它没有被引用时将会被Go语言的垃圾自动回收器回收。不要将关闭一个打开文件的操作和关闭一个channel操作混淆。对于每个打开的文件都需要在不使用的使用调用对应的Close方法来关闭文件。 其实你并不需要关闭每一个channel。只当需要告诉接收者goroutine所有的数据已经全部发送时才需要关闭channel。不管一个channel是否被关闭当它没有被引用时将会被Go语言的垃圾自动回收器回收。不要将关闭一个打开文件的操作和关闭一个channel操作混淆。对于每个打开的文件都需要在不使用的使用调用对应的Close方法来关闭文件。
试图重复关闭一个channel将导致panic异常试图关闭一个nil值的channel也将导致panic异常。关闭一个channels还会触发一个广播机制我们将在8.9节讨论。 试图重复关闭一个channel将导致panic异常试图关闭一个nil值的channel也将导致panic异常。关闭一个channels还会触发一个广播机制我们将在8.9节讨论。