是局部unordered_map变量线程在C 中安全的线程
is local unordered_map variable thread safe in c++
我是C 的新手。我对std::map
和std::unordered_map
的局部变量使用情况有一个线程安全的问题。
如果我在函数中声明 std::map
和 std::unordered_map
的本地变量,并且想要插入元素或增加函数内局部变量中的元素值,那么这些局部变量线程安全是当函数通过多个无锁的多个线程调用的函数时?
示例代码:
void func(const std::string &a, int b)
{
std::map<std::string, int> var1;
auto search = var1.find(a)
if ( search != var1.end() )
{
var1.insert(make_pair(a,b) );
}
else
{
var1[a] = var1[a] + b;
}
std::unordered_map<std::string, int> var2;
auto search = var2.find(a)
if ( search != var2.end() )
{
var2.insert(make_pair(a,b) );
}
else
{
var2[a] = var2[a] + b;
}
}
func()
将通过多个线程调用。var1
和var2
线程是否安全?或者,是否需要在功能中使用Mutex锁?
函数的每个调用都有其自己的局部变量。您可以从多个线程安全地调用此功能。
相关文章:
- 如何将元素添加到数组的线程安全函数?
- C++中的线程安全删除
- 在std::thread中,joinable()然后join()线程安全吗
- 在c++队列中使用pop和visit实现线程安全
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 全局变量 多读取器 一个写入器多线程安全?
- 共享队列的线程安全
- boost::文件系统::recursive_directory_iterator多线程安全
- 以线程安全的方式转换 C/C++ 中时区名称字符串的时区偏移量
- 线程安全运算符<<
- 如何使缓存线程安全
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 提升精神 V2 Qi 语法线程安全吗?
- asio 链对象线程安全吗?
- 线程安全队列 c++
- 提供对不同类型的数据(建议、代码审查)的线程安全访问的类
- 如何以线程安全的方式更改目录?
- 线程安全的引用计数队列C++
- 析构函数和线程安全
- 适用于大型数组的无复制线程安全环形缓冲区