关于锁的注意事项

文件锁

  •  Linux 提供了 fcntl 系统调用,可以锁定文件
  • 但是文件锁是和进程相关联的,一个进程中的多个线程/协程对同一个文件进行的锁操作会互相覆盖掉,从而无效。
  • fcntl 创建的锁是建议性锁,只有写入的进程和读取的进程都遵循建议才有效;对应的有强制性锁,会在每次文件操作时进行判断,但性能较差,因此 Linux/Unix 系统默认采用的是建议性锁。

写入日志文件

  • 使用 O_APPEND 标志来打开文件,这样在每次写入时都会 lseek 到文件末尾进行写入,这是一个原子操作,因此不会产生同步问题。

参考链接

猜你喜欢

转载自blog.csdn.net/CHYabc123456hh/article/details/112125406