我正在创建一个将字符串记录到文件中的异步类。我应该在类本身中创建线程吗?我在想这样的事情作为启动功能
void Async_Log::start (void)
{
  std::thread thread_log(
    [&]()
    {
      std::ofstream fout;
      fout.open(fileName);
      while(true)
      {
        if(q.size())
        {
          std::lock_guard<std::mutex> lock(m);
          fout << q.front() <<  "\t At Time: " << std::clock() << std::endl;
          q.pop();
        }
      }
      fout.close();
    });
}
或者将线程留在主线程会更好。我首先关心的是线程是否是唯一的(所以如果我用两个不同的文件实例化类 2 次,thread_log 会被覆盖或发生冲突)。