Assincronia (programação de computador) - Asynchrony (computer programming)

Assincronia , na programação de computadores , refere-se à ocorrência de eventos independentes do fluxo do programa principal e às formas de lidar com tais eventos. Podem ser eventos "externos", como a chegada de sinais ou ações instigadas por um programa que ocorrem simultaneamente com a execução do programa, sem que o programa bloqueie para aguardar os resultados. A entrada / saída assíncrona é um exemplo do último caso de assincronia e permite que os programas emitam comandos para dispositivos de armazenamento ou rede que atendem a essas solicitações enquanto o processador continua executando o programa. Isso fornece um certo grau de paralelismo .

Uma maneira comum de lidar com a assincronia em uma interface de programação é fornecer sub-rotinas que retornem um futuro ou promessa que representa a operação em andamento e uma operação de sincronização que bloqueia até que o futuro ou promessa seja completado. Algumas linguagens de programação, como Cilk , têm sintaxe especial para expressar uma chamada de procedimento assíncrona.

Exemplos de assincronia incluem o seguinte:

  • Chamada de procedimento assíncrono , um método para executar um procedimento simultaneamente, uma alternativa leve para Threads .
  • Ajax é um conjunto de tecnologias da web do lado do cliente usadas no para criar aplicativos da web de E / S assíncronos .
  • Despacho de método assíncrono (AMD), um método de comunicação de dados usado quando há necessidade do lado do servidor lidar com um grande número de solicitações de cliente de longa duração. Usando o envio de método síncrono (SMD), esse cenário pode transformar o servidor em um estado de ocupado indisponível, resultando em uma resposta de falha de conexão causada por um tempo limite de solicitação de conexão de rede . O atendimento a uma solicitação do cliente é imediatamente despachado para um encadeamento disponível a partir de um pool de encadeamentos e o cliente é colocado em um estado de bloqueio. Após a conclusão da tarefa, o servidor é notificado por um retorno de chamada. O servidor desbloqueia o cliente e transmite a resposta de volta ao cliente. No caso de falta de thread, os clientes são bloqueados esperando que os threads se tornem disponíveis.

Veja também

Referências