【问题标题】:C++: File lock between threads and processesC++:线程和进程之间的文件锁
【发布时间】:2013-06-25 11:36:55
【问题描述】:

我想创建基于文件的锁定,以确保对关联资源的独占访问。 boost:interprocess::file_lock 适合分离进程,但不适合分离线程。如果我们将文件名提取到唯一的完整路径(例如,没有像something/x.lock 这样的相对指定的锁定文件)并将互斥锁与它们相关联,则可以通过额外的boost::recursive_mutex 解决这个问题。

我希望有一种更简单且相对标准的基于文件的锁定方式,适用于线程和进程。

【问题讨论】:

    标签: c++ boost locking file-locking


    【解决方案1】:

    请改用recursive_named_mutex。跨进程和线程工作。更便宜,更不容易出错。

    【讨论】:

    • 名称的长度/内容是否有限制?这些互斥体通常存储在哪里? (我知道重点是我不必知道)
    • 这些是操作系统的实现细节。你没有提到你的操作系统。如果你想知道的话,你可以看看 boost 代码。
    • 为什么建议使用递归互斥锁而不是常规的非递归互斥锁?
    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    相关资源
    最近更新 更多