Sobes.tech
Junior — Middle

Explique o princípio da leitura não bloqueante de dados e suas vantagens.

sobes.tech IA

Resposta da IA

A leitura não bloqueante de dados é uma forma de obter informações de uma fonte (por exemplo, um ficheiro, uma rede ou um buffer), na qual o fluxo não para nem espera que os dados estejam disponíveis. Em vez disso, a operação de leitura devolve imediatamente, seja com os dados disponíveis ou com uma indicação de que ainda não há dados.

Vantagens:

  • Melhoria do desempenho: o fluxo pode realizar outras tarefas sem esperar.
  • Melhoria da capacidade de resposta das aplicações, especialmente em interfaces de utilizador e serviços de rede.
  • Possibilidade de escalar através do uso eficiente de recursos.

Exemplo em Java usando NIO:

ByteBuffer buffer = ByteBuffer.allocate(1024);
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false); // modo não bloqueante
int bytesRead = channel.read(buffer);
if (bytesRead == 0) {
    // ainda não há dados, podem ser realizadas outras tarefas
} else if (bytesRead > 0) {
    // dados lidos e prontos a serem processados
}