以下代码导致内存使用率的提高:
#include <shared_mutex>
class foo
{
public:
void bar()
{
std::unique_lock lock(m_mtx);
}
std::shared_mutex m_mtx;
};
int main()
{
while (1)
{
foo obj;
obj.bar();
}
}
以下内容不:(仅更改互斥锁类型)
#include <mutex>
class foo
{
public:
void bar()
{
std::unique_lock lock(m_mtx);
}
std::mutex m_mtx;
};
int main()
{
while (1)
{
foo obj;
obj.bar();
}
}
我正在使用Windows 7,并使用任务管理器来跟踪程序的内存消耗。
我用mingw编译,并通过以下简单命令行进行编译:
g++.exe -std=c++17 -o mytest main.cpp
shared_mutex的使用有什么错?