diff options
author | Patrick Simianer <p@simianer.de> | 2017-04-02 22:50:34 +0200 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2017-04-02 22:50:34 +0200 |
commit | 833f7f1905bafb28574affc99056695c04390323 (patch) | |
tree | f3d41ef18db9c92cb6ccca6c9b9de27ec71ce64b /go/channels.go | |
parent | c2ade58bb868e72ba560553b3f72188453c55e7a (diff) |
go
Diffstat (limited to 'go/channels.go')
-rw-r--r-- | go/channels.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/go/channels.go b/go/channels.go new file mode 100644 index 0000000..03bcf68 --- /dev/null +++ b/go/channels.go @@ -0,0 +1,38 @@ +package main + +import ( + "fmt" + "time" +) + +func pinger(c chan<- string) { + for i := 0; ; i++ { + c <- "ping" + } +} + +func ponger(c chan string) { + for i := 0; ; i++ { + c <- "pong" + } +} + +func printer(c <-chan string) { + for { + msg := <- c + fmt.Println(msg) + time.Sleep(time.Second * 1) + } +} + +func main() { + var c chan string = make(chan string) + + go pinger(c) + go ponger(c) + go printer(c) + + var input string + fmt.Scanln(&input) +} + |