クライアント プロセスとサーバ プロセスの数が 1 対 1 で対応するアーキテクチャに対して、 データベース サーバでは、少数のサーバ プロセスで多数のクライアントに対応できます。これは、プロセスではなくスレッドをクライアントごとに実行することで行われます。
仮想プロセッサに割り当てられたリソースは複数のスレッドによって共有されるため、マルチスレッドのほうがオペレーティング システムのリソースを効率的に使用できます。仮想プロセッサによって実行されるすべてのスレッドが、仮想プロセッサ メモリ、通信ポート、およびファイルへのアクセスを共有します。スレッドによるリソースへのアクセスは、仮想プロセッサによって調整されます。一方、個々のプロセスはそれぞれ別個の一連のリソースを保有します。そのため、複数のプロセスが同じリソースにアクセスしなければならなくなった場合、オペレーティング システムによりアクセスを調整する必要があります。
一般に、仮想プロセッサによるスレッド間の切替えのほうが、オペレーティング システムによるプロセス間の切替えよりも高速です。プロセスがオペレーティング システムによって切り替えられる場合は、オペレーティング システムによりプロセッサ上でのプロセスの実行を停止して、現在の処理状態を保存してから、別のプロセスを開始する必要があります。両方のプロセスがオペレーティング システムのカーネルに入り、さらに、そこから出る必要があり、場合によっては一部の物理メモリの内容を置き換えなければなりません。一方、スレッドでは同じ仮想メモリとファイル記述子が共有されます。仮想プロセッサによる 1 つのスレッドから別のスレッドへ切替えは、実行パスの切替えにすぎません。プロセスである仮想プロセッサは、割込みなしに CPU 上で動作し続けます。仮想プロセッサがどのようにスレッドを切り替えるかについては、コンテキスト スイッチングを参照してください。