Pool (ciência da computação) - Pool (computer science)

Na ciência da computação , um pool é uma coleção de recursos que são mantidos prontos para uso, em vez de adquiridos no uso e liberados posteriormente. Nesse contexto, os recursos podem se referir a recursos do sistema, como identificadores de arquivo , que são externos a um processo, ou recursos internos, como objetos . Um cliente de pool solicita um recurso do pool e executa as operações desejadas no recurso retornado. Quando o cliente termina de usar o recurso, ele é devolvido ao pool em vez de liberado e perdido.

O agrupamento de recursos pode oferecer um aumento significativo no tempo de resposta em situações com alto custo associado à aquisição de recursos, alta taxa de solicitações de recursos e baixa contagem geral de recursos usados ​​simultaneamente. O pool também é útil quando a latência é uma preocupação, porque um pool oferece tempos previsíveis necessários para obter recursos, uma vez que eles já foram adquiridos. Esses benefícios são principalmente verdadeiros para recursos do sistema que requerem uma chamada de sistema ou recursos remotos que requerem uma comunicação de rede, como conexões de banco de dados , conexões de soquete , threads e alocação de memória . O pooling também é útil para dados caros para computar, notavelmente grandes objetos gráficos como fontes ou bitmaps , agindo essencialmente como um cache de dados ou uma técnica de memoização .

Casos especiais de pools são pools de conexão , pools de encadeamento e pools de memória .

Pools de objetos

Pools também podem ser usados ​​para objetos, em cujo contexto um pool se refere a um padrão de design para implementar pools em linguagens orientadas a objetos , como no padrão de pool de objetos . Os próprios objetos não contêm recursos externos e ocupam apenas memória, embora um objeto já criado evite a alocação de memória necessária na criação do objeto. Os pools de objetos são úteis quando o custo de criação do objeto é alto, mas em certas situações esse pool simples de objetos pode não ser eficiente e pode, de fato, diminuir o desempenho.

Referências