我们知道多任务涉及运行多个进程和多线程,另一方面,运行多个线程,这些线程共享相同的进程内存空间
所以我想知道哪种方法在计算机系统方面似乎更好更快?
哪些可以带来明显的性能差异?
提前致谢!
答案 0 :(得分:1)
正如SergeyA所说,这是一个非常广泛的问题。答案实际上取决于正在解决的问题。
如果各种任务很大而且只是偶尔进行通信,那么多个进程提供了能够跨不同计算服务器拆分进程的优势。
如果任务紧密耦合,那么进程间通信可能会占用很多优势。那时,多线程很可能更有效,而且更容易实现。
创建多个流程可能有些昂贵。产卵线非常容易。这成为一个因素。
所需资源也是一个因素。如果您正在处理大型数据集并跨流程执行此操作,则每个流程都需要将数据集拉入内存。这需要时间和记忆。如果你是多线程的,你可以加载一次并在你的线程之间共享数据。
所以这取决于。对于大多数问题,多线程可能比使用多个进程快得多,但是一旦遇到硬件限制,该答案就会消失。