【发布时间】:2023-01-14 07:48:09
【问题描述】:
我有大约 50 个类似的任务——每个任务都对某个服务器执行网络调用并将响应写入数据库。每个任务都有自己的一组调用。如果相关的话,每个任务都会与一台服务器通信。 我可以有一个进程,每个进程都运行自己的任务,并执行自己的一组调用(因此线程之间不需要内存共享)。另一种选择是每个任务的过程。或组合。 我是否应该选择多线程,因为在进程之间切换成本更高? 它在 Ubuntu 上运行。
【问题讨论】:
-
创建进程比创建线程成本更高
-
试试看,一般很难说。就内核而言,线程和进程之间没有太大区别
-
太多的未知变量要说。但总的来说,进程的启动成本比线程高,但从长远来看,启动成本会逐渐消失。除非你不断地创建新的进程或线程。如果是这种情况,请考虑合并。
标签: c++ linux multithreading ubuntu multiprocessing