gpt4 book ai didi

c - 线程安全的多文件写入

转载 作者:行者123 更新时间:2023-12-04 09:52:39 24 4
gpt4 key购买 nike

我有一个守护进程,它接受套接字连接并根据连接的性质读取或写入一组动态文件。因为我的守护进程是多线程的,所以存在多个线程写入同一个文件的可能性。因为我的文件列表是动态的而不是固定的,所以我不确定如何防止一个线程撞到另一个线程。出于性能原因,我希望线程同时写入不同的文件,而不是同时写入同一个文件。

其他问题建议使用互斥体,但我不完全清楚互斥体在这种情况下有何帮助 - 文件列表是动态的并且只有线程知道。

在这种情况下使用文件锁定是否合适?如果是这样,如何以线程安全的方式实现文件锁定?

最佳答案

flock 可以正常工作。它不锁定文件描述符,它锁定实际文件。

已经被独占flock 的文件不能被另一个进程或线程再次独占锁定。这将破坏锁的全部目的。

需要注意的是,这些锁是建议性的。一个不使用 flock 的进程可以愉快地覆盖该文件,即使另一个进程使用独占的 flock 也可以。

关于c - 线程安全的多文件写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com