Describe how you would implement a singleton pattern for a database connection pool in a multi-threaded environment.