【发布时间】:2015-08-19 06:35:12
【问题描述】:
我正在用 Go 语言编写一个程序,我有一个简单的问题:
我的程序中有一些 goroutines 和 goroutines 用来通信的通道。有时我想检查通道内的内容。我怎样才能在不中断 goroutine 工作的情况下实现这一点?频道有打印内容的功能吗?还是我应该以某种方式复制它们?
var shelf chan int = make(chan int, 5)
go Depot(shelf)
go Shop(shelf)
var input string
fmt.Scanln(&input)
if (input == "print") {
//here print what on shelf
}
【问题讨论】:
-
答案是“有点”。请参阅stackoverflow.com/a/26045887/3108853 进行讨论。
-
所以也许我可以创建变量的深层副本,例如在 ada
Obj1.all := Ob2.all中? -
不,因为复制不是原子的。
标签: go