लगातार कनेक्शन होने का मतलब यह नहीं है कि सभी थ्रेड एक ही कनेक्शन का उपयोग करते हैं। यह सिर्फ "कहता है" कि आप कनेक्शन को खुला रखते हैं (विरोधाभास में हर बार जब आपको एक कनेक्शन की आवश्यकता होती है)। कनेक्शन खोलना एक महंगा ऑपरेशन है, इसलिए - सामान्य तौर पर - आप आवश्यकता से अधिक बार कनेक्शन खोलने से बचने की कोशिश करते हैं।
यही कारण है कि मल्टीथ्रेडेड एप्लिकेशन अक्सर कनेक्शन पूल का उपयोग करते हैं। पूल कनेक्शन खोलने और बंद करने का ख्याल रखता है और प्रत्येक थ्रेड जिसे कनेक्शन की आवश्यकता होती है, पूल से एक अनुरोध करता है। यह ध्यान रखना महत्वपूर्ण है कि थ्रेड जितनी जल्दी हो सके कनेक्शन को पूल में लौटा दे, ताकि दूसरा थ्रेड इसका उपयोग कर सके।
यदि आपके एप्लिकेशन में केवल कुछ लंबे समय तक चलने वाले थ्रेड हैं जिन्हें कनेक्शन की आवश्यकता है, तो आप प्रत्येक थ्रेड के लिए एक कनेक्शन भी खोल सकते हैं और इसे खुला रख सकते हैं।
केवल एक कनेक्शन का उपयोग करना (जैसा कि आपने इसका वर्णन किया है) अधिकतम आकार वाले कनेक्शन पूल के बराबर है। यह जल्दी या बाद में आपकी अड़चन होगी क्योंकि सभी थ्रेड्स को कनेक्शन के लिए इंतजार करना होगा। यह डेटाबेस संचालन को क्रमबद्ध करने का एक विकल्प हो सकता है (उन्हें एक निश्चित क्रम में निष्पादित करें), हालांकि क्रमबद्धता सुनिश्चित करने के लिए बेहतर विकल्प हैं।