2009-07-31 31 views
0

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

编辑:其对C + UNIX

+2

语言/科技? – 2009-07-31 09:59:51

回答

1

这将有助于加强与时间序列图你的问题。

总之,按照你描述的问题可能是: - 一些库没有被设计为多线程应用 - 不是所有的操作都是由互斥阻塞(互斥体的一个很好的解释可以发现here) - 线程/进程优先级 - 混合同步/异步API(即一个参数由事件返回,而另一个参数是使用函数调用设置的)

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

我希望这会有所帮助。