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