字符串的字符"/>
使用两个goroutine交替、顺序打印一段字符串的字符
1、使用两个goroutine交替、顺序打印一段字符串的字符
输入:hello world
输出:hello world
关键点:控制goroutine的执行先后循序
golang语言版本:
package mainimport ("fmt""sync"
)func main() {content := "hello world"var wg sync.WaitGroup //打印完后再退出主goroutinevar count = len(content)wg.Add(count)ch1 := make(chan string, 1)ch2 := make(chan string, 1)ch1 <- "1"for _, v := range content {select { //监听并选择有值的通道进行处理case <-ch1:go func(s string) {defer wg.Done()fmt.Println(s)ch2 <- "2"}(string(v))case <-ch2:go func(s string) {defer wg.Done()fmt.Println(s)ch1 <- "1"}(string(v))}}wg.Wait()
}
输出:
更多推荐
使用两个goroutine交替、顺序打印一段字符串的字符
发布评论