我在空閒時間寫了一個圖像板刮板來教我主要關於線程。目前我正在使用生產者/消費者類型模式來促進這項工作。但是,我遇到了一個問題。跟蹤不同線程上對象實例的狀態?
現在,我有「隊列處理器」,觀察並處理特定類型的線程安全隊列。這些隊列處理器每隔X秒輪詢一次目標隊列,並且如果隊列中有等待處理的項目,隊列處理器會使該項目出隊,使用該項目旋轉一個新線程並啓動線程。在每個線程上,調用長時間運行的方法(如連接到網站並下載文件)。以這種方式,每個項目都有自己的線程運行。
我很難搞清楚如何報告每個線程正在處理的每個項目的狀態。
例如,假設我們有主線程MT。 MT產生子線程T1,T2,T3,T4和T5。在每個線程上都有一個對應的對象,O1 ... O5。這些對象可以處於三種不同的狀態(S1,S2,S3),而它們正在其線程上進行處理。
如何在對象O的狀態發生變化時向主線程MT報告每個對象O的狀態S?
我嘗試使用事件來報告狀態,但我遇到了一些令人毛骨悚然的結果。我搜索了一些關於使用線程和事件的信息,但沒有得到太多的結果。
任何幫助,將不勝感激。
謝謝。