關於多進程架構的一種思路
為什么要搞多進程架構?
每一個進程都有自己的獨立空間,一個進程崩潰,不會影響其他的進程。因此多進程架構的程序,它的健壯性大大加強。
單進程多線程的程序,經常會遇到因為主線程卡死,而導致整個進程“無反應”的情況。
相比使用動態庫 DLL(BPL)的架構有什么差別?
對於動態庫,以下稱之為“包”。
對於使用包組織的程序,稱之為“插件”架構。
對於封裝有復雜對象或3方控件的包,通常會使用“公共包”來封裝全局(公共)的對象和變量。
其他包要使用公共對象,通過引用公共包來進行訪問。
此種方式,在程序進行部署的時候,要一同附帶許多的運行時包。對於要帶運行時包這事,許多人是深惡痛絕的。
而多進程架構的程序,則沒有這個煩惱(不需要帶運行時包)。
怎么實現程序的多進程架構?
筆者在此提供一種思路。
可以使用WINDOWS操作系統的內存映像文件,使多個進程之間共享全局對象。
當然此種方法同樣也適用於包組織的插件架構在各插件間共享全局對象。
具體實現,詳見:https://www.cnblogs.com/hnxxcxg/archive/2009/10/22/2940750.html