我是一個新手,在多線程編程,這是我的第一篇文章在這裏!所以請耐心等待。同步線程有兩個正在運行的線程,C++,窗戶
我有兩個相機,我想跟蹤同時一個對象(兩個獨立的線程)和輸出它到主功能或者一個第三螺紋位置。然後使用每個攝像頭中物體的位置計算物體的3D位置。比方說,第一攝像機輸出X1和Y1,第二攝像機輸出X2和Y2這些應該被用來估計X,ÿ和ž。
我想定義X1的Y1,X2和Y2爲全局變量,使他們第三線程方便。但問題是第三個線程應該與前兩個線程同步。第三個線程不改變內容x1,y1,x2和y2。它僅使用這些值,以獲得X,ÿ和ž。但是,如果該值X1和Y1更新和X2和Y2現時仍未更新,我想第三個線程暫停,直到X2和Y2被更新。或者換句話說,我想第三個線程使用X1,Y1,這期間的時間很短的時間,在一個時間點噸,或獲得理想X2 和 Y2 。
我很感激任何關於如何解決這個問題的建議。我正在考慮使用CreateThread()。有更容易的方法嗎? 在多線程編程中使用全局變量是一個好主意嗎? 分別是從線1和2是一個好主意,以輸出全局變量T1和T2(系統時間),並在第三個線程比較?這種方法的一個問題可能是,因爲線程1和線程2都在做同樣的事情,所以我們假設T他們完成他們的任務,因此在這些線程之間總是存在固定的延遲,這可能會比我們想。而作爲一個結果,螺紋3再也找不到X1,Y1,X2和Y2其中獲得在時間上非常接近!
注:我使用Windows 7時,Visual Studio 2010,C++編程語言。
你或者你能否給用於生成[x,y]的幀的到達加上時間戳?更好 - 相機能夠在圖像採集上生成時間戳嗎? –