Skip to content

Commit a83aeec

Browse files
committed
修改 {} 初始化可能导致问题的代码,调整格式。fixes #36
1 parent 7a53541 commit a83aeec

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

md/02使用线程.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ auto sum(ForwardIt first, ForwardIt last){
9191
std::size_t remainder = distance % num_threads;
9292

9393
// 存储每个线程的结果
94-
std::vector<value_type> results { num_threads };
94+
std::vector<value_type> results(num_threads);
9595

9696
// 存储关联线程的线程对象
9797
std::vector<std::thread> threads;
@@ -120,7 +120,7 @@ auto sum(ForwardIt first, ForwardIt last){
120120
}
121121
```
122122
123-
> [运行](https://godbolt.org/z/MdrP98o13)测试。
123+
> [运行](https://godbolt.org/z/9qW55aY6j)测试。
124124
125125
我们写了这样一个求和函数 `sum`,接受两个迭代器计算它们范围中对象的和。
126126

md/04同步操作.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -697,9 +697,9 @@ auto sum(ForwardIt first, ForwardIt last) {
697697
std::size_t remainder = distance % num_threads;
698698
699699
// 存储每个线程要执行的任务
700-
std::vector<std::packaged_task<value_type()>>tasks;
700+
std::vector<std::packaged_task<value_type()>> tasks;
701701
// 和每一个任务进行关联的 future 用于获取返回值
702-
std::vector<std::future<value_type>>futures(num_threads);
702+
std::vector<std::future<value_type>> futures(num_threads);
703703
704704
// 存储关联线程的线程对象
705705
std::vector<std::thread> threads;
@@ -733,7 +733,7 @@ auto sum(ForwardIt first, ForwardIt last) {
733733
}
734734
```
735735
736-
> [运行](https://godbolt.org/z/r19MYcv6e)测试。
736+
> [运行](https://godbolt.org/z/79fe1Gvcq)测试。
737737
738738
相比于之前,其实不同无非是定义了 `std::vector<std::packaged_task<value_type()>> tasks``std::vector<std::future<value_type>> futures` ,然后在循环中制造任务插入容器,关联 future,再放到线程中执行。最后汇总的时候写一个循环,`futures[i].get()` 获取任务的返回值加起来即可。
739739

0 commit comments

Comments
 (0)