看完這個章節不久,剛好有個開發項目,需要軟件兼容不同的採集設備。對於數據採集,有兩種做法。一種是針對每種設備開啓一個獨立線程來負責採集數據,另一種就是使用獨立進程來採集數據,並使用UDP來向主程序回傳採集數據。在兼容的設備數量比較多時,每個設備開啓一個線程,並且進行相應的協議處理的話,這樣就會導致程序規模比較龐大,而且一旦採集硬件出現一些故障,會導致主程序的崩潰,而第二種方式則不會,就算出現問題,也不會影響主程序的穩定性。此外,兼容不同設備的採集程序還可以由不同的人同時開發,提高開發效率,可以協作開發。
當然,多進程的方式也有缺點,就是需要針對IPC定義通信協議,這個可能也會比較麻煩。線程在很多情況下也是難以避免的,當然這個可以根據軟件規模來靈活選擇了。但是,Unix下一個進程只做一件事的思想確實可以爲windows開發所用。其實,咱們大家都用的360殺毒軟件,就有很多後臺進程,可見其也是採用了這種思想。