因此,我将进一步使用golang并进一步了解它提供的并发性.我决定尝试使用go例程来实现电话号码中字符串的排列.
我遇到了使用sync.WaitGroup来协调我一直在使用的go例程的问题.具体错误是:
WaitGroup is reused before previous Wait has returned
代码是:
main.go
package main
import (
"fmt"
"sync"
"github.com/sbiscigl/phonenumberperm/intstack"
"github.com/sbiscigl/phonenumberperm/permutations"
)
var wg sync.WaitGroup
func main() {
num := []int{2, 7, 1, 4, 5, 5, 2}
stack := intstack.New(num)
permutationChannel := make(chan string)
wg.Add(1)
go permutations.ThreadSafeCalcWords(stack, "", permutationChannel, &wg)
wg.Wait()
/*Then consume, but not implimented*/
}
Run Code Online (Sandbox Code Playgroud)
排列/ perm.go
package permutations
import (
"fmt"
"sync"
"github.com/sbiscigl/phonenumberperm/intstack"
)
var letterMap = map[int][]string{
2: []string{"a", "b", "c"},
3: []string{"d", "e", "f"},
4: []string{"g", …Run Code Online (Sandbox Code Playgroud) go ×1