簡體   English   中英

使用C中的共享信息執行並行任務

[英]Execute parallel tasks with shared information in C

假設我正在構建一個接受客戶端連接的程序,將每個新客戶端放入列表,將列表打印到控制台,並在新客戶端連接時進行更新。

同時(因此,當accept()阻止程序流;客戶端與套接字連接時),我想處理用戶輸入。 通過在控制台上鍵入數字,用戶將始終能夠從列表中選擇一個特定的客戶端進行通信(假設每個客戶端對應一個唯一的編號(id))。

如何在C中實現這一目標? 我應該使用共享內存或套接字來使用進程並交換信息,還是應該使用線程? 又為什么呢?

盡管我的問題的標題含糊不清,但該問題並非重復,因為我正在尋求用於此特定示例的方法。

如何在C中實現這一目標? 我應該使用共享內存或套接字來使用進程並交換信息,還是應該使用線程? 又為什么呢?

首選線程,因為它們更易於使用。 對線程之間共享的數據使用互斥鎖,根據您的操作系統使用pthread或winthread。 這將使您盡快獲得可行的原型。

您提供的信息無法真正評估除工作原型之外的任何內容。 多少個客戶端,什么操作系統,RAM或磁盤中的客戶端列表(可能取決於客戶端大小),等等? 大多數事情都需要權衡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM