小编sci*_*igs的帖子

在上一次Wait返回之前重新使用WaitGroup

因此,我将进一步使用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

6
推荐指数
1
解决办法
3674
查看次数

标签 统计

go ×1