节省内存和资源

相较于一个客户机进程对应一个服务器进程的体系结构,数据库服务器能够用少量的服务器进程处理大量客户机。 对于每台客户机,数据库服务器是通过运行线程而不是进程来实现这点的。

因为线程共享分配给虚拟处理器的资源,所以多线程允许对操作系统资源进行更有效的使用。 虚拟处理器运行的所有线程对虚拟处理器内存、通信端口和文件具有相同的访问权。虚拟处理器会按线程协调对资源的访问。但是,每个单独的进程都有一组不同的资源,并且在多个进程需要访问相同资源时,操作系统必须对访问进行协调。

通常,虚拟处理器从一个线程切换至另一个线程比操作系统从一个进程切换至另一个进程更快。当操作系统在两个进程间切换时,它必须使一个进程停止在处理器上运行,保存其当前的处理状态(或上下文),然后启动另一个进程。两个进程都必须进入然后退出操作系统内核,并且可能需要替换部分物理内存的内容。但是,线程会共享相同的虚拟内存和文件描述符。在虚拟处理器从一个线程切换到另一个线程时,就相当于从一个执行路径切换到另一个执行路径。 虚拟处理器是一个进程,该进程在 CPU 上持续运行而不会中断。有关虚拟处理器如何从一个线程切换到另一个线程的描述,请参阅上下文切换