【发布时间】:2013-05-16 06:16:42
【问题描述】:
为了在 linux 上开发高度网络密集型的服务器应用程序,首选哪种架构?这个想法是这个应用程序通常会在具有多核(虚拟或物理)的机器上运行。考虑到性能是关键标准,选择多线程应用程序还是多进程设计的应用程序更好?我确实知道从多个进程共享资源和同步访问这些资源需要大量的编程开销,但如前所述,整体性能是关键要求,因此我们可以忽略这些事情。并且编程语言是 C/C++。
我听说即使是多线程应用程序(单个进程)也可以利用多个内核并在不同内核上独立运行每个线程(只要不存在同步问题)。而这个调度是由内核完成的。如果是这样,多线程应用程序和多进程应用程序之间的性能差异不是很大吗? Nginx 采用多进程架构,速度确实很快,但是多线程应用能获得同样的性能吗?
谢谢。
【问题讨论】:
标签: linux multithreading multiprocessing