User Tools

Site Tools


cs_lang:go

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
cs_lang:go [2012/04/30 09:23] cedriccs_lang:go [2012/04/30 09:24] cedric
Line 32: Line 32:
 </code> </code>
  
 +
 +===== Producer-consumer problem =====
 +<code go>
 +package main
 + 
 +import ("fmt")
 + 
 +var done = make(chan bool)
 +var cake = make(chan int)
 + 
 +func produce (firstname string) {
 +    for i := 0; i < 10; i++ {
 +        fmt.Printf("%s make cake %d\n", firstname, i)
 +        cake <- i
 +    }
 +    done <- true
 +}
 + 
 +func consume (firstname string) {
 +    for {
 +      cake_number := <-cake
 +      fmt.Printf("%s eat cake %d\n", firstname, cake_number)
 +   }
 +}
 + 
 +func main () {
 +   go produce("Alice")
 +   go consume("Bob")
 +   go consume("Maxime")
 +   <- done
 +}
 +</code>
  
 ===== Fork bomb ===== ===== Fork bomb =====
cs_lang/go.txt · Last modified: 2014/04/18 23:19 by cedric