[英]How to create more than one instance with own copy of global variables
我有兩個項目:
它工作得很好。
但是現在第二個項目應該運行多個嵌入式項目實例。 此外,每個實例都應該有自己的靜態/全局變量副本,我應該能夠在一個程序范圍內與每個實例進行交互。 我不知道如何使用所有靜態/全局變量執行此操作。
有沒有簡單的方法來解決我的問題?
有幾種方法可以解決這個問題:
產生多個進程(每個進程都有自己的全局變量)和它們與主程序之間的通信設置通道。
擺脫全局變量。 最簡單的方法是將它們全部轉儲到類中(作為非靜態成員),並使用該類的實例來訪問每組變量。
無論哪種方式,如果你有大量的全局變量,這不是一個小問題。
正如其他答案所述,最好的解決方案是擺脫全局變量,但我知道這並不總是可行的。 我遇到了與我們的代碼庫完全相同的問題。
我使用的解決方案是將每個實例構建為單獨的DLL。 然后加載我在運行時使用LoadLibrary()
加載每個DLL。 通過這種方式,您可以在一個進程中運行所有內容,並擁有相同全局變量和單例的多個版本。 然后您不需要使用任何IPC,但可以通過簡單的函數調用在實例之間傳遞數據。 它還使調試更容易,因為您可以在一個調試器中看到所有內容。
注意:我是在Windows上制作的,但我認為在Unix上可能有類似的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.