[GO]多任务的资源竞争问题
package main import ( "fmt" "time" ) func Printer(s string) { for _, data := range s { //fmt.Println(string(data)) fmt.Printf("%c", data) time.Sleep(time.Second) } } func person1() { Printer("hello") } func person2() { Printer("world") } func main() { go person1() go person2() for true { } }
这段代码执行的结果为
hweolrllodc
可以看到因为使用了并发它的打印是交叉了的,但是在实际的使用过程中,我们肯定是希望打印了person1的任务后再打印person2的任务,如何在使用并发的时候也能实现呢?下一篇,Channel的使用