gpt4 book ai didi

multithreading - 我可以一次对所有 slice 项目执行操作吗?

转载 作者:IT王子 更新时间:2023-10-29 02:33:14 25 4
gpt4 key购买 nike

我有以下代码:

func myfunction() {
results := make([]SomeCustomStruct, 0)

// ... results gets populated ...

for index, value := range results {
results[index].Body = cleanString(value.Body)
}

// ... when done, more things happen ...
}

func cleanString (in string) (out string) {
s := sanitize.HTML(in)
s = strings.Replace(s, "\n", " ", -1)
out = strings.TrimSpace(s)
return
}

slice 永远不会包含超过 100 个左右的条目。有什么方法可以在这里利用 goroutines 同时对每个 slice 项目执行 cleanString 函数,而不是一个一个地执行?

谢谢!

最佳答案

如果 slice 只有 100 个或更少的项目,并且这是 cleanString 的全部,那么除非正文字符串相当大,否则您不会获得很多加速。

将它与 goroutines 并行化看起来像这样:

var wg sync.WaitGroup
for index, value := range results {
wg.Add(1)
go func(index int, body string) {
defer wg.Done()
results[index].Body = cleanString(body)
}(index, value.Body)
}
wg.Wait()

关于multithreading - 我可以一次对所有 slice 项目执行操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com