将线程的日志数据转储到公共缓冲区

Posted

技术标签:

【中文标题】将线程的日志数据转储到公共缓冲区【英文标题】:Dumping threads' Log Data into Common buffer 【发布时间】:2016-02-23 05:31:28 【问题描述】:

我的程序有不同的线程,将运行一个通用的日志记录线程。

我所有的线程都必须将一些日志数据转储到日志线程的缓冲区中。一旦缓冲区达到一定大小,日志记录线程将依次写入日志文件。

如何在不影响运行线程性能的情况下写入公共缓冲区。?我正在考虑一种无需太多开销的方法,而不是使用互斥锁或任何其他同步机制。

【问题讨论】:

【参考方案1】:

您可能会发现使用互斥体的性能损失非常低,以至于不值得尝试创建多生产者、单消费者队列的麻烦。但是this question 询问了此类问题,并提供了一些建议。

【讨论】:

以上是关于将线程的日志数据转储到公共缓冲区的主要内容,如果未能解决你的问题,请参考以下文章

将帧缓冲区转储转换为图像(bmp、png 等)

多线程应用程序中的日志队列将信息转储到数据库(服务器端应用程序)?

线程在随机位置随机时间后停止运行,没有任何错误

提升ASIO IO_SERVICE实施?

Android 一个异步SocketHelper

Java 使用双内存缓冲区 实现简易日志组件