c - 在 C 中使用共享信息执行并行任务
问题描述
假设我正在构建一个接受客户端连接的程序,将每个新客户端放入列表中,将列表打印到控制台并在新客户端连接时更新。
同时(所以当 accept() 阻塞程序流时;客户端与套接字连接),我想处理用户输入。用户应始终能够通过在控制台中输入一个数字来从列表中选择一个特定的客户端进行通信(假设每个客户端对应一个唯一的数字 (id))。
我怎样才能在 C 中实现这一点?我应该使用共享内存或套接字来使用进程和交换信息,还是应该更喜欢线程?为什么?
尽管我的问题的标题有点含糊,但这个问题并不是重复的,因为我要求一种用于此特定示例的方法。
解决方案
我怎样才能在 C 中实现这一点?我应该使用共享内存或套接字来使用进程和交换信息,还是应该更喜欢线程?为什么?
更喜欢线程,因为它们更容易使用。对线程之间共享的数据使用互斥锁,根据您的操作系统使用 pthread 或 winthread。这将使您尽快获得工作原型。
除了工作原型之外的任何东西都无法用您提供的信息进行评估。RAM 或磁盘中的客户端列表(可能取决于客户端大小)等有多少客户端,什么操作系统,等等...?大多数事情都有取舍。
推荐阅读
- excel-formula - Excel 问题。如果或?公式?
- image-processing - 重建函数与流域分割有何关系?
- go - 接口类型转换不起作用
- javascript - 浏览器不想运行 .js
- javascript - 使用来自数据库的 Json 数据填充下拉列表(使用 Python FLASK)
- r - 用于 R Shiny 发布的 RHEL Bash 脚本
- ios - iOS 自定义框架未在 Storyboard 上显示模块选项
- android - Android 从arraylist中的字符串中提取
- javascript - 如何使用 JavaScript Webdriver 访问 Selenium 的日志以查看网络请求
- sql - 将一列的值复制到不同行的另一列