2009-07-31 59 views
0

我在多線程中面臨同步相關的問題。 我有一個應用程序用來構建應用程序的共享庫。從庫 我創建了一個線程,它監聽來自請求的進程並處理它,它是實時線程。從庫中我調用了一個本質上同步的API,它將等待來自其他模塊的響應。這個API與第一個響應之後的響應應該來自的其他模塊有一定的依賴關係。但有時候第二個響應會出現在第一個響應中,因此API失敗,有時它可以正常工作。已經應用了互斥鎖arpit。 任何人都可以告訴我什麼應該是解決問題的方法? 我希望我的問題很清楚。多線程 - Unix上的同步

編輯:其對C + UNIX

+2

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

回答

1

這將有助於加強與時間序列圖你的問題。

總之,按照你描述的問題可能是: - 一些庫沒有被設計爲多線程應用 - 不是所有的操作都是由互斥阻塞(互斥體的一個很好的解釋可以發現here) - 線程/進程優先級 - 混合同步/異步API(即一個參數由事件返回,而另一個參數是使用函數調用設置的)

如果您唯一的問題是排序,您也可以嘗試增強API,例如使用序列號或時間戳。這樣你的代碼就可以找到最早的事件。

我希望這會有所幫助。