<分区>
为了工作,我需要编写一个 tcp 守护进程来响应我们的客户端软件,并且想知道是否有人对解决此问题的最佳方法有任何建议。
我是否应该像通常使用线程那样为每个新连接创建分支?
<分区>
为了工作,我需要编写一个 tcp 守护进程来响应我们的客户端软件,并且想知道是否有人对解决此问题的最佳方法有任何建议。
我是否应该像通常使用线程那样为每个新连接创建分支?
最佳答案
这取决于您的应用。线程和 fork 都是完全有效的方法,也是单线程事件驱动模型的第三种选择。如果您能详细解释一下您正在写的内容,这将有助于提供建议。
就其值(value)而言,这里有一些一般准则:
通常, fork 是最容易实现的,因为一旦 fork ,您基本上可以忽略所有其他连接;由于额外的同步要求,线程次之;由于需要将您的处理变成状态机,事件循环更加困难;多线程运行事件循环是其中最困难的(由于结合其他因素)。
关于c++ - 编写 linux 守护进程的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1210623/
相关文章:
c++ - 如何在包含char和pair<int,string>的map中按键删除元素
c++ - 如果只有主应用程序是用 clang 编译的,是否可以使用 clang Address Sanitizer?
c++ - Boost cpp_dec_float 支持模运算
c++ - 如何在 QLineEdit 中使用 std::string?
linux - Linux 内核线程的调度或抢占是如何工作的?
python - 在 Linux 中使用 SWIG for Python 转换字符串
linux - 在嵌入式 Linux 系统上将 SDL 应用程序作为守护进程运行
mysql - 如何在Windows后台运行apache的httpd守护进程?