我已經偶然發現了一個我很確定我已經解決的問題,但目前找不到一個好的解決方案。讓我們知道所有的班級線程忽略一個事件
- 說我有多個線程,每個線程都探測連接。
- 如果發現連接斷開,線程將重新連接並增加共享計數器。
- 萬一共享計數器達到N時, 當前線程還將重新啓動遠程服務,並且歸零 共享計數器。
- 這反過來將最終導致所有線程 重新連接(並再次增加共享計數器)。
問題是,我如何讓所有的線程忽略這個特殊的斷開連接事件,以防止早期的服務重啓(或重啓循環,更糟糕的情況下,如果有很多線程)?
環境是普通的Java。
我已經偶然發現了一個我很確定我已經解決的問題,但目前找不到一個好的解決方案。讓我們知道所有的班級線程忽略一個事件
問題是,我如何讓所有的線程忽略這個特殊的斷開連接事件,以防止早期的服務重啓(或重啓循環,更糟糕的情況下,如果有很多線程)?
環境是普通的Java。
跟蹤上次重新啓動時間。如果您在上次重新啓動時間的短時間內,請勿增加計數器。
當然很難找到這樣的常見問題描述的一個很好的解決方案。
這些線程可以指示(由計數器)停止計數(Observer模式)之後的計數器已經復位(0)。這種行爲在起始條件下也是可取的。
然後一個線程會等待計數,直到下一次連接嘗試成功。
我希望這是可以理解的。
謝謝,也想過這個,但希望有一個更優雅的解決方案(猜測被反應式編程原則變得太多了)。 – SyBer