O significado de "assíncrono" é diferente em todos esses casos.
No caso de shell, &
executa um comando de forma assíncrona, o que significa que o shell recupera o controle assim que o comando é iniciado e o comando é executado em segundo plano. O shell processará o próximo comando, se houver um, ou o controle de retorno para o usuário ou o processo pai, se não houver.
No caso de encadeamento, o cancelamento assíncrono significa que o encadeamento que está sendo cancelado é interrompido imediatamente, geralmente de uma maneira que é controlada somente de fora do encadeamento, isto é, do encadeamento de cancelamento. A definição que você encontrou não é familiar para mim; Tenho a tendência de pensar no cancelamento assíncrono, conforme descrito na definição POSIX da função pthread_cancel
, < em> ie o cancelamento é assíncrono porque a função de cancelamento devolve o controle ao chamador imediatamente, e o cancelamento continua em paralelo no segmento de destino.
Na primeira definição que você encontrou usando o Google, assíncrona refere-se à natureza da comunicação: a comunicação assíncrona ocorre quando as partes não precisam estar presentes simultaneamente. Um exemplo de comunicação assíncrona é o e-mail.
A segunda definição que você encontrou usando o Google parece referir-se à programação assíncrona, por exemplo, programação orientada a retorno de chamada. Em vez de definir seqüências de operações procedimentalmente e bloquear operações, você descreve eventos e seqüências de operações que são executadas quando os eventos ocorrem. A definição assíncrona que você cita parece referir-se a sequências de operações que são executadas quando outra sequência de operações é concluída (consulte ListenableFuture
descrição para uma implementação deste). Imagine que você queira recuperar algumas informações de um site e processá-las; em estilo típico de procedimento, você usaria algo como curl
para recuperar os dados do site, aguardar a conclusão e, em seguida, processá-los. No estilo assíncrono, você descreveria o que deseja fazer com os dados, depois dispararia a recuperação, com essa descrição, e o processamento aconteceria assim que os dados se tornassem disponíveis, enquanto você poderia fazer outra coisa. Aqui, a "operação específica" seria o processamento que você deseja realizar, e a "operação anterior" seria a recuperação de dados.