为什么剂量不工作缓冲液到右边的golang上?
如果通道已满,则等待。这是错的吗?
我不明白它是如何工作的。
你能告诉我golang通道缓冲器是如何工作的吗?
import (
"fmt"
"runtime"
);
func main() {
runtime.GOMAXPROCS(1);
done := make(chan bool, 2);
count := 4;
go func() {
for i := 0; i < count; i++ {
done <- true
fmt.Println("AAAAAAAA", i);
}
}()
for j := 0; j < count; j++ {
<-done
fmt.Println("BBBBBBBBBB", j);
}
}
---------------------------------------------------------------------------------
AAAAAAAAAAAAAAA 0
AAAAAAAAAAAAAAA 1
AAAAAAAAAAAAAAA 2
BBBBBBBBBB 0
BBBBBBBBBB 1
BBBBBBBBBB 2
BBBBBBBBBB 3
这是我的期望
AAAAAAAAAAAAAAA 0
AAAAAAAAAAAAAAA 1
BBBBBBBBBB 0
BBBBBBBBBB 1
AAAAAAAAAAAAAAA 2
AAAAAAAAAAAAAAA 3
BBBBBBBBBB 2
BBBBBBBBBB 3
神不在的星期二
一只甜甜圈
相关分类