Multithreading 多线程写入一个文件的最佳实践是什么

Multithreading 多线程写入一个文件的最佳实践是什么,multithreading,file,thread-safety,Multithreading,File,Thread Safety,我正在编写一个多线程程序,所有这些线程都应该将数据写入一个文件。 这些线程只为某种仅附加的日志记录编写不同的字符串 在线程之间共享文件以供输出的最佳做法是什么?用于日志记录(对于将来的问题,请确保您将该信息放入问题中,而不仅仅是一条注释)。强烈建议不要让线程访问它们不必访问的文件;因为这意味着日志记录会对该线程其余部分的性能产生负面影响 因此,,NathanOliver建议让线程写入共享容器,然后让一个线程专门将该容器转储到文件中,这可能是您的最佳选择。就我个人而言,我会让所有线程将数据写入某个

我正在编写一个多线程程序,所有这些线程都应该将数据写入一个文件。 这些线程只为某种仅附加的日志记录编写不同的字符串

在线程之间共享文件以供输出的最佳做法是什么?

用于日志记录(对于将来的问题,请确保您将该信息放入问题中,而不仅仅是一条注释)。强烈建议不要让线程访问它们不必访问的文件;因为这意味着日志记录会对该线程其余部分的性能产生负面影响


因此,,NathanOliver建议让线程写入共享容器,然后让一个线程专门将该容器转储到文件中,这可能是您的最佳选择。

就我个人而言,我会让所有线程将数据写入某个共享容器,然后让另一个线程只从容器中提取数据并写入请确保有适当的文件写入锁定机制。最佳做法是避免共享和争用。或者使用互斥来独占访问文件。或者使用writer线程并将数据发布到writer线程处理的内存队列中,您仍然需要锁定队列,但时间要短得多。这个问题需要更多的细节才能回答。文件中是否有可以独立更新的不同记录?只附加日志?或