为了让你的日志系统在 Linux 平台下支持多线程同时操作,我们需要解决两个核心问题:
- 线程安全(Thread Safety):防止多个线程同时写入同一个文件(或控制台)时,日志内容发生交错(例如:线程A写了一半,线程B插进来写,导致一行日志乱码)。
- 资源管理:确保在多线程环境下,文件句柄不会被意外关闭。
在 Linux 下,最标准且高效的解决方案是使用 pthread_mutex_t(互斥锁)。
以下是修改后的代码方案。
核心修改点
- 引入头文件:包含
<pthread.h>。 - 扩展结构体:在
FileLogger中增加一个pthread_mutex_t成员。 - 加锁与解锁:在写入文件前后对锁进行操作。
1. 头文件 (logger.h)
无需修改,保持原样即可。
2. 实现文件 (logger.c)
这里重点修改了 FileLogger 部分,
订阅专栏 解锁全文

45

被折叠的 条评论
为什么被折叠?



