gpt4 book ai didi

c - N 个线程写入以不同优先级运行的 M 个文件,并跟踪线程请求的和当前分配给线程的所有文件

转载 作者:行者123 更新时间:2023-11-30 18:59:15 25 4
gpt4 key购买 nike

我想创建一个程序,使用 POSIX 线程,让 n 个线程以不同的优先级运行。

有一些文件(例如 m 个文件)在这些 n 线程之间共享。如果一个线程正在使用该文件(假设它正在写入该文件),则不允许其他线程使用它。代码应该维护一个表,该表说明:它已获取哪个文件以及其请求正在等待哪个文件。

此外,我们需要一个监视器线程来检查死锁;有任何实现提示/想法吗?

最佳答案

您不需要检查死锁。您必须编写一个好的代码,使其不可能遇到死锁情况。因此,我建议您使用尝试锁定方法来锁定文件链,并在任何锁定获取失败时将它们解锁。

此外,如果您使用 C 缓冲 I/O,我建议您坚持使用 ftrylockfile and funlockfile蜜蜂。否则,请使用最适合您情况的同步机制,例如 futex API 或使用原子指令实现的锁。

关于c - N 个线程写入以不同优先级运行的 M 个文件,并跟踪线程请求的和当前分配给线程的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12962226/

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