gpt4 book ai didi

c - 多线程 - Unix 上的同步

转载 作者:行者123 更新时间:2023-11-30 16:05:23 24 4
gpt4 key购买 nike

我在多线程中面临同步相关问题。我有一个共享库,应用程序使用它来构建应用程序。从图书馆我创建了一个线程,它监听传入的请求并处理它,它是实时线程。我从库中调用了一个本质上同步的 API,它将等待来自其他模块的响应。该 API 与其他模块有一定的依赖性,其他模块的响应应该在第一个响应之后出现。但有时第二个响应出现在第一个响应之前,因此 API 会失败,有时它工作正常。互斥锁 arpit 已应用。谁能告诉我应该采取什么方法来解决这个问题?我希望我的问题很清楚。

编辑:它在 c + unix 上

最佳答案

用时序图有助于增强你的问题。

无论如何,根据您的描述,问题可能出在: - 某些库不是为多线程使用而设计的 - 并非所有操作都会被互斥锁阻止(可以找到互斥锁的详细解释 here ) - 线程/进程优先级 - 混契约(Contract)步/异步 API(即一个参数由事件返回,而另一个参数则使用函数调用设置)

如果您唯一的问题是排序,您还可以尝试增强您的 API,例如使用序列号或时间戳。这样您的代码就可以找到最早的事件。

我希望这会有所帮助。

关于c - 多线程 - Unix 上的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211698/

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