Boa noite herdantzig2017!
A questão de pool é um pouco mais complexa, e talvez seu exemplo não seja aplicável, pelo seguinte:
Quando você exemplifica o acesso à videos, podemos considerar como se fossem licenças. Assim, se temos 20 licenças de visualização, somente 20 poderão utilizá-las. O 21 teria que esperar.
Quando tratamos em Java/JDBC a questão de conexões em banco de dados, é
como a Maria disse, o Pool mantém um certo número de conexões abertas disponíveis com o banco de dados.
Existe uma parametrização de limitação de mínimo e máximo de conexões disponíveis. O mínimo define quantas conexões o pool gerará já no load. Este número cresce de acordo com a necessidade, até chegar ao limite máximo.
A questão do connection pool é com relação ao seu uso. Depende muito da codificação do sistema. Se o seu sistema, no login, disponibilizar uma conexão e mantê-la para aquele usuário, até o encerramento da sessão, você terá um número limitado de usuários "online"
Agora, vamos pensar grande. O sistema de mobile bank de um banco, tendo 5000 clientes simultâneos navegando no sistema. Não é boa prática você dimensionar um pool tão grande - nem tampouco limitar seu sistema de tal forma - ele deve estar disponível 99% de tempo (estou deixando 1% para manutenções de TI, rsrs).
Assim, na programação , disponibilizamos a conexão somente no momento em que ela for necessária, e no momento seguinte da ação - consulta, insert, etc., ela deve ser imediatamente devolvida. Deste modo, não é necessária configuração de um pool imenso para atender grande concorrência de acesso.