mirror of
https://github.com/vbatts/talks.git
synced 2025-05-24 05:42:32 +00:00
2013-03: adding an old learning lunch
This commit is contained in:
parent
68f582d393
commit
24cea0199b
17 changed files with 718 additions and 0 deletions
20
2013/03-golang-learning-lunch/14-ngoroutines/main.go
Normal file
20
2013/03-golang-learning-lunch/14-ngoroutines/main.go
Normal file
|
@ -0,0 +1,20 @@
|
|||
package main
|
||||
|
||||
// START OMIT
|
||||
var ngoroutine = 100000
|
||||
|
||||
func f(left, right chan int) { left <- 1 + <-right }
|
||||
|
||||
func main() {
|
||||
leftmost := make(chan int)
|
||||
var left, right chan int = nil, leftmost
|
||||
for i := 0; i < ngoroutine; i++ {
|
||||
left, right = right, make(chan int)
|
||||
go f(left, right)
|
||||
}
|
||||
right <- 0 // bang!
|
||||
x := <-leftmost // wait for completion
|
||||
println(x) // 100000
|
||||
}
|
||||
|
||||
// STOP OMIT
|
Loading…
Add table
Add a link
Reference in a new issue