永続的な接続があるからといって、すべてのスレッドが同じ接続を使用しているわけではありません。接続を開いたままにしておくことを「言う」だけです(接続が必要になるたびに接続を開くのとは対照的です)。接続を開くことはコストのかかる操作であるため、一般に、必要以上に頻繁に接続を開かないようにします。
これが、マルチスレッドアプリケーションが接続プールを頻繁に使用する理由です。プールは接続のオープンとクローズを処理し、接続を必要とするすべてのスレッドがプールからの接続を要求します。別のスレッドが接続を使用できるように、スレッドができるだけ早く接続をプールに返すように注意することが重要です。
アプリケーションに接続が必要な長時間実行スレッドが数個しかない場合は、スレッドごとに接続を開いて、これを開いたままにしておくこともできます。
(説明したように)1つの接続だけを使用することは、最大サイズが1の接続プールと同じです。すべてのスレッドが接続を待機する必要があるため、これは遅かれ早かれボトルネックになります。これは、データベース操作をシリアル化する(特定の順序で実行する)オプションである可能性がありますが、シリアル化を確実にするためのより良いオプションがあります。