为了在Linux上开发高度网络密集型的服务器应用程序,什么样的架构更受推崇?想法是这个应用程序通常会在具有多个核心(虚拟或物理)的机器上运行。考虑到性能是关键标准,是选择多线程应用程序还是具有多进程设计更好呢?我知道共享资源和同步访问多个进程的编程开销很大,但正如前面所述,整体性能是关键要求,因此我们可以忽略这些问题。编程语言将是C/C ++。
我听说即使是多线程应用程序(单个进程),也可以利用多个核心并独立地在不同的核心上运行每个线程(只要没有同步问题)。而且这个调度是由内核完成的。如果是这样的话,多线程应用程序和多进程应用程序之间的性能差异不会太大吧?Nginx使用多进程架构,速度非常快,但是多线程应用程序能否获得相同的性能呢?
谢谢。