Parallel processing 并行计算字符总数

Parallel processing 并行计算字符总数,parallel-processing,rust,lifetime,Parallel Processing,Rust,Lifetime,我有一个字符串数组。我想计算总的字符数,但使用线程进行并行化(最初的问题不是这个,而是类似的) 使用std::thread; 发布fn频率(输入:&'a[&'a str])->impl fn()->usize+'a{ move | | input.iter().map(| s | s.len()).sum() } 编译器告诉我: 错误[E0495]:由于需求冲突,无法推断自动引用的适当生存期 -->src/lib.rs:5:10 | 5块(工人计数) | ^^^^^^ | 注

我有一个字符串数组。我想计算总的字符数,但使用线程进行并行化(最初的问题不是这个,而是类似的)

使用std::thread;
发布fn频率(输入:&'a[&'a str])->impl fn()->usize+'a{
move | | input.iter().map(| s | s.len()).sum()
}
编译器告诉我:

错误[E0495]:由于需求冲突,无法推断自动引用的适当生存期
-->src/lib.rs:5:10
|
5块(工人计数)
|          ^^^^^^
|
注意:首先,生命周期不能超过3:18时在函数体上定义的生命周期“a”。。。
-->src/lib.rs:3:18
|

3 | pub fn frequency
calculate
看起来不错,但是
thread::spawn
明确要求
'static
,因为生成的线程可能比原始线程寿命长。您可能正在寻找这是否回答了您的问题?看起来您的问题可能由的答案来回答。如果没有,请回答您的问题以解释差异。否则,我们可以将此问题标记为已回答,但这可能不是作用域线程的典型用法。问题中的代码(以及我刚刚发布的两个版本)有一个bug:
chunks
的参数是每个chunk的大小,而不是chunks的数量。您可能想要类似于
input.chunks((input.len()+worker\u count-1)/worker\u count)