How to use lock_guard in C++
发布时间
阅读量:
阅读量
mutex01.cpp
#include <iostream>
#include <array>
#include <limits>
#include <set>
#include <unordered_map>
#include <functional>
#include <memory>
#include <ostream>
#include <string>
#include <vector>
#include <map>
#include <optional>
#include <optional>
#include <chrono>
#include <mutex>
#include <thread>
std::map<std::string, std::string> g_pages;
std::mutex g_pages_mutex;
void save_page(const std::string& url,const std::string& content)
{
std::cout << "save:"<<url<<std::endl;
// simulate a long page fetch
std::this_thread::sleep_for(std::chrono::seconds(0));
// std::string result = "fake content";
std::lock_guard<std::mutex> guard(g_pages_mutex);
g_pages[url] = content;
std::cout << "save:"<<url<<" ok"<<std::endl;
}
int main() {
std::thread t1(save_page, "http://foo","content 1");
std::thread t2(save_page, "http://bar","content 2");
t1.join();
t2.join();
for(auto item: g_pages){
std::cout << "save:"<<item.second<<std::endl;
}
return 0;
}
mutex01.cpp
g++ mutex01.cpp -lpthread -o a ;./a
全部评论 (0)
还没有任何评论哟~
