【发布时间】:2017-01-26 19:57:57
【问题描述】:
假设我们有一个客户端,它不断发送大量的双重数据。
现在我们正在尝试做一个服务器,它可以接收和处理来自客户端的数据。
这是事实:
服务器可以在很短的时间内收到双倍。
服务端有个处理double的功能,只处理一个double需要3分钟以上。
我们需要让服务器尽可能快地处理来自客户端的 1000 个双精度数据。
我的想法如下:
使用线程池创建多个线程,每个线程可以处理一个double。
所有这些都在 Linux 中。
我的问题:
现在我的服务器只是一个包含多线程的进程。我正在考虑如果我使用fork(),会更快吗?
我认为只使用fork() 而不使用多线程应该是一个坏主意,但是如果我创建两个进程并且每个进程都包含多线程怎么办?这种方法可以更快吗?
顺便说一句,我读过:
What is the difference between fork and thread?
Forking vs Threading
【问题讨论】:
-
请注意您的措辞倒置:服务器 提供调用服务。您正在描述 server 不断向 client 发送数据以进行处理的设置。从术语的角度来看,应该颠倒过来。您有一个 client 想要将数据发送到 server 进行处理;不是反过来!
-
@GhostCat 谢谢。事实上,我称它为“服务器”,因为它是执行
listen的“服务器”,而它是执行connect的“客户端”。 -
只是说:您应该在措辞、文档等方面准确无误,以确保团队中的每个人都了解您的服务器客户端的性质,或者是客户端服务器?
-
@GhostCat 我得到它并重新编辑。
标签: c linux multithreading process fork