万行代码计划
Day03,100行
进度200/10000
/*20210728
std::unique_lockstd::mutex lock(mutex);// 配合使用std::condition_variable::wait
cv.wait(lock,[]{return quit||!globalList.empty();});//加入等待条件
pool.emplace_back(worker,i);//右值引用,直接构造
cout线程不安全的,printf线程安全的
线程池
线程死循环等待写法避免,占用CPU过高,如何避免?
隔断时间看一下?
线程进入和退出的条件如何处理?
线程等待条件如何设置?
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include<condition_variable>
class Message{
public:
const std::string& data() const{ return m_data;}
Message(std::string d = std::string()):m_data(std::move(d)){}
private:
std::string m_data;
};
std::atomic toatalSize{0};
std::mutex mutex;
std::condition_variable cv;
std::atomic rea