mirror of
https://github.com/vbatts/talks.git
synced 2025-05-24 13:52:30 +00:00
2015-devnation: copying devconf talk
This commit is contained in:
parent
5149d7ec5e
commit
65363d37c3
18 changed files with 482 additions and 0 deletions
33
2015/06-devnation-golang-good-bad-ugly/pingpong.go
Normal file
33
2015/06-devnation-golang-good-bad-ugly/pingpong.go
Normal file
|
@ -0,0 +1,33 @@
|
|||
// +build OMIT
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
// STARTMAIN1 OMIT
|
||||
type Ball struct{ hits int }
|
||||
|
||||
func main() {
|
||||
table := make(chan *Ball)
|
||||
go player("ping", table)
|
||||
go player("pong", table)
|
||||
|
||||
table <- new(Ball) // game on; toss the ball
|
||||
time.Sleep(1 * time.Second)
|
||||
<-table // game over; grab the ball
|
||||
}
|
||||
|
||||
func player(name string, table chan *Ball) {
|
||||
for {
|
||||
ball := <-table
|
||||
ball.hits++
|
||||
fmt.Println(name, ball.hits)
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
table <- ball
|
||||
}
|
||||
}
|
||||
|
||||
// STOPMAIN1 OMIT
|
Loading…
Add table
Add a link
Reference in a new issue