2012-03-14 128 views
-3

我正在用C编写一个简单的客户服务器。制作多进程服务器而不是多线程服务器的优点是什么?多进程服务器或多线程服务器?

+0

你经过研究,了解进程和线程,你不需要问这个问题。 – 2012-03-14 11:16:30

回答

1

如果不知道你的平台,这是不现实的答案。传言表明,在Windows上启动新进程非常昂贵,但开始新线程几乎是免费的。所以如果性能是唯一的考虑因素,Windows环境更喜欢线程。

在Linux上,线程是作为新进程的特殊情况变体实现的。他们几乎都是免费的。选择哪一个会导致长期的最佳代码。

在其他平台上,线程可能更昂贵 - 或者可能无法使用多个处理器。在这些平台上,选择进程。

当然,这不仅仅是纯粹的表现。 很好,关于shared-nothing designs - 如果您从程序中删除所有共享数据,可以极大地降低同时访问这些数据结构的代码段中可能出现的错误。此外,由于进程不共享运行时内存,因此危害一个进程的攻击者可能无法控制其他进程。 (或者,这可能更困难。)线程只会让攻击者阅读任何想要的内容。

0

优点使得多进程服务器,而不是多线程之一的:

各处理的受保护存储器空间防止一个过程存储的不希望的损坏,从另一个。

缺点使得多进程服务器,而不是多线程之一的:

各处理的受保护存储器空间防止期望的一个过程和另一个之间的直接通信。

看看你的要求,你挑..