gpt4 book ai didi

c++ - 返回时复制操作是在 lock_guard 析构函数之前还是之后执行的?

转载 作者:可可西里 更新时间:2023-11-01 16:36:05 25 4
gpt4 key购买 nike

get_a() 函数对于竞争条件是否安全,或者我是否需要像在 get_b() 中那样显式复制 str_ 以便按顺序有一个线程安全的功能?

class Class {
public:
auto get_a() -> std::string {
auto&& guard = std::lock_guard{mutex_};
return str_;
}
auto get_b() -> std::string {
auto&& guard = std::lock_guard{mutex_};
auto str = str_;
return str;
}
private:
std::mutex mutex_{};
std::string str_{};
};

注意:我知道 Stack Overflow 上有类似的问题,但我找不到明确回答这个问题的问题。

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