Для этого следует использовать пул соединений.
Таким образом, вы можете запросить соединение и освободить его, когда закончите с ним, и вернуть его в пул
Если другой поток хочет новое соединение и оно используется, может быть создано новое. Если ни один другой поток не использует соединение, его можно использовать повторно.
Таким образом, вы можете оставить свое приложение каким-то образом, как оно есть (и не передавая соединение вокруг), и все равно правильно использовать ресурсы.
К сожалению, первоклассные ConnectionPools не очень просты в использовании в автономных приложениях (они используются по умолчанию на серверах приложений). Возможно, микроконтейнер (например, Sping) или хорошая структура (например, Hibernate) позволят вам использовать один.
Они не слишком сложны, чтобы их можно было кодировать с нуля.
:)
Этот поиск в Google поможет вам узнать больше о том, как его использовать.
Скользить через