在这里编写一个程序,后台线程不断更新天气温度信息,并打印:
#include <thread>
#include <map>
#include <chrono>
using namespace std::chrono_literals;
void RefreshForecase(std::map<std::string, int> forecaseMap) {
while (true) {
for (auto &i : forecaseMap) { // go through the map and update the temperature
i.second++;
printf("%s: %d\n", i.first, i.second);
}
std::this_thread::sleep_for(2000ms); // milisecond in chrono_literals
}
}
int main()
{
std::map<std::string, int> forecastMap = {
{"shanghai", 25},
{"wuhan", 15},
{"xian", 18}
};
std::thread bgWorker(RefreshForecase, forecastMap);
while (true); // keep runing or the bgWorker will abort when get out of main() scope
return 0;
}