Pool de conexões, hibernate

pessoal, quero entender melhor essa questão de pool de conexões que andei vendo aqui pela internet…vamos lá:
tendo essa confiiguração:

      <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>  
<property name="hibernate.c3p0.min_size">5</property>  
<property name="hibernate.c3p0.max_size">25</property>  
<property name="hibernate.c3p0.timeout">1800</property>  
<property name="hibernate.c3p0.max_statements">50</property> 

minha dúvida é a seguinte:
na linha [quote]25 [/quote] diz que o máximo de conexões é 25, ok, agora, como funciona exatamente isso???
quero dizer, ele alterna conexões, ou conecta todas de uma vez???
pergunto isso, me baseando no seguinte:
crio uma aplicação desktop conectada a um bando de dados que fica num host, sendo que o máximo de conexões simultaneas permitidas são 100, como se dá essa relação do 25 ???

eu fiquei na dúvida , pois quero usar isso dentro de um sistema que eu criei, mas esse lance de conexões é que me deixou na dúvida…
Como funciona exatamente esse c3po???
obs.: Obrigado a todos pela constante atenção aos meus problemas e dúvidas!!!
Abraços!!!
Horácio