1. 程式人生 > >程序間通訊的訊息佇列和共享記憶體方式的實現

程序間通訊的訊息佇列和共享記憶體方式的實現

共享記憶體方式使用QSharedMemory 和QSystemSemaphore兩個類實現

一個程序往共享記憶體空間中寫,一個程序往共享記憶體空間中讀

兩程序通訊時:

向共享記憶體中提供資料的一方:

1,定義QSharedMemory shareMemory,並設定標誌名shareMemory.setKey();

2,將共享記憶體與主程序分離 shareMemory.detach();

3,建立共享記憶體 shareMemory.create();

4,將共享記憶體上鎖shareMemory.lock();

5,將程序中要共享的資料拷貝到共享記憶體中;

6,將共享記憶體解鎖shareMemory.unlock();

從共享記憶體中取資料的一方:

1,定義QSharedMemory shareMemory,並設定共享記憶體的標誌名shareMemory.setKey()注意設定的要與提供記憶體共享的一方要一樣。

2,將共享記憶體上鎖shareMemory.lock();

3,將共享記憶體與主程序繫結shareMemory.attach(),使該程序可以訪問共享記憶體的資料;

4,從共享記憶體中取資料;

5,使用完後將共享記憶體解鎖shareMemory.unlock(),另外將共享記憶體與該程序分離shareMemory.detach();