Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 3 additions & 3 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /