对应leetcode 1117
https://leetcode.cn/problems/building-h2o/description/
题目大意:在三个为一组的字符串中,打印两个H,一个O,顺序不限。
这在go里面很容易实现。只需要在每个函数前加上一个go关键词,就可以轻松实现并发了。直接看代码!
package main
import (
"fmt"
"sync"
)
func main() {
for {
var wg sync.WaitGroup
wg.Add(3)
go H1(&wg)
go H2(&wg)
go O1(&wg)
wg.Wait()
fmt.Println()
}
}
func H1(wg *sync.WaitGroup) {
defer wg.Done()
fmt.Print("H")
}
func H2(wg *sync.WaitGroup) {
defer wg.Done()
fmt.Print("H")
}
func O1(wg *sync.WaitGroup) {
defer wg.Done()
fmt.Print("O")
}
打印效果: