Explain connection pools.
01
01
Understand the problem
connection-pool
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
A pool of N reusable connections
Run Playgroundimport threading, queue, time
class Pool:
def __init__(self, size):
self.free = queue.Queue()
for i in range(size):
self.free.put("conn-" + str(i)) # pre-open N connections
def acquire(self):
return self.free.get() # blocks/queues if none free
def release(self, conn):
self.free.put(conn)
pool = Pool(2) # only 2 connections for everyone
def handle(req):
conn = pool.acquire()
print(req, "using", conn)
time.sleep(0.05) # run query
pool.release(conn) # return -> reused
threads = [threading.Thread(target=handle, args=("req" + str(i),)) for i in range(5)]
for t in threads: t.start()
for t in threads: t.join()
print("5 requests served by 2 pooled connections")05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.