We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
load
atomic<shared_ptr>
1 parent 31712e4 commit d456b4bCopy full SHA for d456b4b
md/05内存模型与原子操作.md
@@ -493,8 +493,8 @@ void writer() {
493
494
void reader() {
495
for (int i = 0; i < 10; ++i) {
496
- if (data.load()) {
497
- std::cout << "读取线程值: " << data.load()->get_value() << std::endl;
+ if (auto sp = data.load()) {
+ std::cout << "读取线程值: " << sp->get_value() << std::endl;
498
}
499
else {
500
std::cout << "没有读取到数据" << std::endl;
@@ -504,7 +504,7 @@ void reader() {
504
505
```
506
507
-很显然,这是线程安全的,`store` 是原子操作,而 `data.load()->get_value()` 只是个读取操作。
+很显然,这是线程安全的,`store` 是原子操作,而 `sp->get_value()` 只是个读取操作。
508
509
我知道,你肯定会想着:*能不能调用 `load()` 成员函数原子地返回底层的 `std::shared_ptr` 再调用 `swap` 成员函数?*
510
0 commit comments