cs_lang:go
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cs_lang:go [2012/04/21 09:00] – cedric | cs_lang:go [2014/04/18 23:19] (current) – [Books] cedric | ||
---|---|---|---|
Line 9: | Line 9: | ||
<code go> | <code go> | ||
package main | package main | ||
+ | |||
import " | import " | ||
- | + | ||
func sum(a []int, c chan int) { | func sum(a []int, c chan int) { | ||
sum := 0 | sum := 0 | ||
Line 18: | Line 19: | ||
c <- sum // send sum to c | c <- sum // send sum to c | ||
} | } | ||
- | + | ||
func main() { | func main() { | ||
a := []int{7, 2, 8, -9, 4, 0} | a := []int{7, 2, 8, -9, 4, 0} | ||
- | | + | |
go sum(a[: | go sum(a[: | ||
go sum(a[len(a)/ | go sum(a[len(a)/ | ||
- | | + | |
fmt.Println(x, | fmt.Println(x, | ||
} | } | ||
- | </go> | + | </code> |
+ | ===== Producer-consumer problem ===== | ||
+ | <code go> | ||
+ | package main | ||
+ | |||
+ | import (" | ||
+ | |||
+ | var done = make(chan bool) | ||
+ | var cake = make(chan int) | ||
+ | |||
+ | func produce (firstname string) { | ||
+ | for i := 0; i < 10; i++ { | ||
+ | fmt.Printf(" | ||
+ | cake <- i | ||
+ | } | ||
+ | done <- true | ||
+ | } | ||
+ | |||
+ | func consume (firstname string) { | ||
+ | for { | ||
+ | cake_number := <-cake | ||
+ | fmt.Printf(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | func main () { | ||
+ | go produce(" | ||
+ | go consume(" | ||
+ | go consume(" | ||
+ | <- done | ||
+ | } | ||
+ | </ | ||
- | ====== Books ====== | + | ===== Fork bomb ===== |
- | <html> | + | <code go> |
- | <div id=" | + | package main |
- | </ | + | |
+ | import " | ||
+ | |||
+ | func main() { | ||
+ | c := make(chan bool) | ||
+ | go func() { | ||
+ | count := 0 | ||
+ | for <- c { | ||
+ | count++ | ||
+ | fmt.Println(count) | ||
+ | } | ||
+ | }() | ||
+ | bomb(c) | ||
+ | } | ||
+ | |||
+ | func bomb(tick chan bool) { | ||
+ | for { | ||
+ | tick <- true | ||
+ | go bomb(tick) | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Books ====== | ||
[[https:// | [[https:// |
cs_lang/go.1334991642.txt.gz · Last modified: 2012/04/21 09:00 by cedric