1.日志打印问题
当调用fstream时,会调用操作系统的东西打开一个文件,得到当前文件的指针头,在操作系统的缓存中写入,两个指针的指针头指向的位置是一样的,执行析构函数时就覆盖掉了,因为指针头是一样的
调用flush()会调用指针头直接往里面写
2.线程之间需要同步信息
在这个题目counter必须共享
方法:原子操作
#include<atomic.>
但是有局限性:很难用的很好
m_count.fetch_add(1, ); 等同于 m_count++,第二个餐宿一般用memory_order_seq_cst
std::atomic<int.> m_count;
或std::atomic_int m_count;
3.新的需求
增加资源的消耗
addcount和addResource之间有线程切换