个性化阅读
专注于IT技术分析

go channel频道

点击下载

通道充当管道, 我们通过管道将键入的值从一个Go routine发送到另一个Go routine。由于在任何给定时间只有一个Go routine可以访问数据项, 因此可以保证同步。数据的所有权在不同的Go routine之间传递。因此, 通过设计, 它避免了共享内存的陷阱, 并防止了竞争情况。

Go频道示例

package main
import "fmt"
import "time"
func worker(done chan bool) {
   fmt.Print("working...")
   time.Sleep(time.Second)
   fmt.Println("done")
   done <- true
}
func main() {
   done := make(chan bool, 1)
   go worker(done)
   <-done
}

输出:

working...done
赞(0)
未经允许不得转载:srcmini » go channel频道

评论 抢沙发

评论前必须登录!