0
A
回答
3
是的。但它本身不包含完整的IPC解決方案,並且可能不完全兼容那裏的每個IPC實施。對於父母和孩子,我想你是指服務器和客戶端?通常你打開某種網絡連接或者創建管道進行通信,你會得到一個文件描述符(即使你使用隱藏它的高級庫)。您可以將此文件描述符傳遞給glib並獲取回調,然後可以讀取數據(或關閉連接)。一些流行的IPC方法,如CORBA和DBUS已經有glib集成,所以你甚至不需要打擾文件描述符等等。 glib事件循環描述爲here。與直接使用poll()相比,它看起來可能非常複雜,但另一方面它非常便攜。
基本用法是使用g_source_new()創建一個源文件,並使用g_source_attach()將其添加到主上下文中,然後使用g_source_add_poll()將源文件描述符添加到源文件中。
如果你還沒有決定使用glib,你可能想要檢查出libevent與glib做同樣的事情,但是(恕我直言)更容易使用。它在處理1000多個同時運行的客戶端時也是明顯更好的(至少在Linux中,其他操作系統甚至可能不支持)。但另一方面,它不是可移植的,並且可能只能在兼容posix的系統上工作。
相關問題
- 1. 是否可以使用document.dispatchEvent在JavaScript中循環事件?
- 2. 是否可以使用while循環而不是for循環?
- 3. mousedown事件是否可以在循環中發生?
- 4. 是否可以查詢JavaScriptCore事件循環?
- 5. 是否有可能調用java主事件循環?
- 6. 是否可以使用GLib進行OS檢測?
- 7. 可以在沒有GLib主循環的情況下使用GStreamer嗎?
- 8. 是否可以循環setter和getters?
- 9. 是否可以重置For循環?
- 10. 是否可以在記事本++中循環行?
- 11. OpenMP中的靜態調度循環塊是否可以使用?
- 12. 是否可以在Synchronize中使用簡單的循環?
- 13. 是否可以循環使用不同參數的方法?
- 14. 循環引用是否可以在數據庫中使用?
- 15. 是否可以使用循環引用來執行序列化?
- 16. 是否可以不使用局部變量我在for循環?
- 17. Javascript - 是否可以使用函數進行循環?
- 18. 是否可以在for循環中使用數組?
- 19. 是否可以使用循環來聲明變量?
- 20. 是否可以使用for/while循環創建MVVM屬性?
- 21. 是否可以使用STATEFUL循環NN(LSTM)進行分類
- 22. 是否可以使用CUDA並行化該嵌套for循環?
- 23. 是否可以使用setTimeout設置循環動畫?
- 24. 是否可以同時使用多個for循環?
- 25. 是否可以使用DWScript創建Read-eval-print循環(REPL)?
- 26. 是否可以避免使用double for循環
- 27. 我可以使用for循環而不是while循環嗎?
- 28. 是否有可能重新排序node.js事件循環?
- 29. 是否可以使用循環創建同一個組件的多個實例?
- 30. 是否可以在不使用循環的情況下找到控件?
不,不是服務器和客戶端。我有父母(主)過程和約10個孩子。我希望孩子聽母語命令(例如,die(),reload_config(),do_this(),do_that())和父母來收聽兒童命令(例如i_have_finished())。我不需要1000個併發客戶端,只有大約10個。命令很少。 – 2010-06-30 11:31:19
如果孩子是由主人開始的本地進程,那麼只需要一個簡單的任務就可以解決(如果孩子是遠程的,你需要自己設置它,否則它並不是很不同)。您可以使用g_spawn_async_with_pipes()來啓動子進程並獲取文件描述符(如上所述使用)。你也可以得到一個可以用來獲得回調的PID,然後孩子用g_child_watch_add()終止。 – Grim 2010-07-02 01:58:14