Execução assíncrona versus síncrona, o que realmente significa? [fechadas]

1186

Qual é a diferença entre execução assíncrona e síncrona?

tush1r
fonte
... ou execução "sequencial vs paralela" ... embora o paralelismo verdadeiro exija vários núcleos, caso contrário, é entrelaçado logicamente.
samis 30/05
8
Eu costumava confundir os dois termos, e a maneira como lembrei da diferença é lançar o primeiro "A" em " A JAX", que significa assíncrono, em JavaScript, quando você solicita o AJAX em um loop que eles não esperam um ao outro ou bloquear o processo, porque o navegador não deseja afetar a experiência do usuário com um site congelado, todas as solicitações são enviadas quase ao mesmo tempo sem aguardar a resposta da solicitação anterior. Isso é assíncrono #
1125

Respostas:

1748

Quando você executa algo de forma síncrona, aguarda o término antes de prosseguir para outra tarefa. Quando você executa algo de forma assíncrona, pode passar para outra tarefa antes que ela termine.

Dito isto, no contexto dos computadores, isso se traduz na execução de um processo ou tarefa em outro "encadeamento". Um encadeamento é uma série de comandos (um bloco de código) que existe como uma unidade de trabalho. O sistema operacional pode gerenciar vários segmentos e atribuir a um segmento uma parte ("fatia") do tempo do processador antes de alternar para outro segmento, para que ele possa trabalhar um pouco. Na essência (perdoe o trocadilho), um processador pode simplesmente executar um comando, não tem o conceito de fazer duas coisas ao mesmo tempo. O sistema operacional simula isso alocando fatias de tempo para diferentes segmentos.

Agora, se você introduzir vários núcleos / processadores no mix, as coisas poderão realmente acontecer ao mesmo tempo. O sistema operacional pode alocar tempo para um encadeamento no primeiro processador e, em seguida, alocar o mesmo bloco de tempo para outro encadeamento em um processador diferente. Tudo isso é sobre permitir que o sistema operacional gerencie a conclusão de sua tarefa enquanto você pode prosseguir no seu código e fazer outras coisas.

A programação assíncrona é um tópico complicado devido à semântica de como as coisas se unem quando você pode fazê-las ao mesmo tempo. Existem inúmeros artigos e livros sobre o assunto; dar uma olhada!

Adam Robinson
fonte
246
O que absolutamente me confunde é que síncrono significa "ao mesmo tempo", mas quando usado no sentido acima, significa seqüencial e assíncrono significa "não ao mesmo tempo" ... ?? Alguém pode explicar esse conflito?
11133 Damien Roche
45
@ Zenph: Neste contexto, um bloco inteiro de código é o que estamos preocupados. Síncrono significa que o bloco é executado ao mesmo tempo (embora, sim, os componentes sejam executados sequencialmente). Assíncrono significa que o bloco não é todo executado ao mesmo tempo.
Adam Robinson
8
A execução assíncrona também ocorre quando um programa envia uma mensagem para uma fila (como nos sistemas de mensagens, como ActiveMQ, WebSphere MQ, HornetQ, MSMQ, etc.). Nesse caso, a chamada assíncrona não envolve programação multithread ou manipulação de simultaneidade no nível do sistema operacional.
Paulo Merson 15/06
287
Por incrível que pareça "Sincronicamente" significa "usar o mesmo relógio", portanto, quando duas instruções são síncronas, elas usam o mesmo relógio e devem acontecer uma após a outra. "Assíncrono" significa "não usar o mesmo relógio"; portanto, as instruções não se preocupam em estar em sintonia. É por isso que olha para trás, o termo não se refere à relação de instruções entre si. Está se referindo a cada relação de instruções com o relógio. Espero que ajude.
Tom Padilla
14
Os termos vêm da engenharia. en.wikipedia.org/wiki/Asynchronous_system
Tom Padilla
1151

Síncrono / Assíncrono NÃO TEM NADA A VER COM MULTI-ROSCA.

Síncrono ou Sincronizado significa "conectado" ou "dependente" de alguma forma. Em outras palavras, duas tarefas síncronas devem estar cientes uma da outra e uma tarefa deve ser executada de alguma maneira dependente da outra, como esperar para iniciar até que a outra tarefa seja concluída.
Assíncrono significa que eles são totalmente independentes e nenhum deles deve considerar o outro de forma alguma, nem na iniciação nem na execução.

Síncrono (um segmento):

1 thread ->   |<---A---->||<----B---------->||<------C----->|

Síncrono (multithread):

thread A -> |<---A---->|   
                        \  
thread B ------------>   ->|<----B---------->|   
                                              \   
thread C ---------------------------------->   ->|<------C----->| 

Assíncrono (um segmento):

         A-Start ------------------------------------------ A-End   
           | B-Start -----------------------------------------|--- B-End   
           |    |      C-Start ------------------- C-End      |      |   
           |    |       |                           |         |      |
           V    V       V                           V         V      V      
1 thread->|<-A-|<--B---|<-C-|-A-|-C-|--A--|-B-|--C-->|---A---->|--B-->| 

Assíncrono (multithread):

 thread A ->     |<---A---->|
 thread B ----->     |<----B---------->| 
 thread C --------->     |<------C--------->|
  • Pontos inicial e final das tarefas A, B, C representadas por <, >caracteres.
  • Fatias de tempo da CPU representadas por barras verticais |

Tecnicamente, o conceito de síncrono / assíncrono realmente não tem nada a ver com threads . Embora, em geral, seja incomum encontrar tarefas assíncronas em execução no mesmo encadeamento, é possível (veja exemplos abaixo) e é comum encontrar duas ou mais tarefas executadas de forma síncrona em encadeamentos separados ... Não, o conceito de síncrono / assíncrono tem a ver apenas com o fato de uma segunda tarefa ou uma tarefa subsequente poder ser iniciada antes que a outra (primeira) tarefa seja concluída ou se deve esperar. Isso é tudo. Para qual thread (ou threads), ou processos, ou CPUs, ou mesmo qual hardware, as tarefas são executadas não são relevantes. De fato, para explicar isso, editei os gráficos para mostrar isso.


EXEMPLO ASSÍNCRONO:

Na solução de muitos problemas de engenharia, o software foi projetado para dividir o problema geral em várias tarefas individuais e depois executá-las de forma assíncrona. A inversão de uma matriz, ou um problema de análise de elementos finitos, são bons exemplos. Na computação, classificar uma lista é um exemplo. A rotina quicksort, por exemplo, divide a lista em duas listas e executa uma quicksort em cada uma delas, chamando a si mesma (quicksort) recursivamente. Nos dois exemplos acima, as duas tarefas podem (e geralmente foram) executadas de forma assíncrona. Eles não precisam estar em threads separados. Mesmo uma máquina com uma CPU e apenas um segmento de execução pode ser codificada para iniciar o processamento de uma segunda tarefa antes da conclusão da primeira. O único critério é que os resultados de uma tarefa não sejam necessários como entradas para a outra tarefa. Contanto que os horários de início e término das tarefas se sobreponham (possível apenas se a saída de nenhuma for necessária como entrada para a outra), eles serão executados de forma assíncrona, independentemente de quantos threads estejam em uso.

EXEMPLO SINCRONIZADO:

Qualquer processo que consiste em várias tarefas em que as tarefas devem ser executadas em sequência, mas uma deve ser executada em outra máquina (Buscar e / ou atualizar dados, obter uma cotação de ações do serviço financeiro, etc.). Se estiver em uma máquina separada, estará em um encadeamento separado, síncrono ou assíncrono.

Charles Bretana
fonte
92
porque no mundo as palavras significam coisas diferentes no computador ... sempre me deixa voltar a isso ... do dicionário .. síncrono: ocorrendo ao mesmo tempo. assíncrono: não ocorre ao mesmo tempo.
Muhammad Umer
17
mas como você pode ver na computadores que significa o oposto
Muhammad Umer
5
Talvez a nomenclatura seja baseada em se o início de tarefas é "sincronizado" com a conclusão de outras tarefas?
Charles Bretana 18/09/2013
11
@ MuhammadUmer: no mundo dos computadores, ocorrer ao mesmo tempo é chamado simultaneidade.
Roy Ling
5
IMHO, essas imagens nem todas descrevem a execução síncrona versus assíncrona de tarefas. Por exemplo, a segunda imagem implica que as tarefas assíncronas exigem vários threads. Na verdade, não. E essas tarefas precisam ser executadas em paralelo, o que também não é um requisito. Ou, a imagem para "síncrona" mostra muito bem como as tarefas foram enviadas de forma assíncrona, formam um site de chamada e agora são executadas em um agendador de tarefas em série;) IMO, as imagens são enganosas.
CouchDeveloper 15/09/2015
642

Em termos mais simples:

SÍNCRONO

Você está em uma fila para obter um ingresso de cinema. Você não pode conseguir um até que todos na sua frente consigam um, e o mesmo se aplica às pessoas na fila atrás de você.

ASSÍNCRONO

Você está em um restaurante com muitas outras pessoas. Você pede sua comida. Outras pessoas também podem pedir a comida, não precisam esperar que a comida seja cozida e servida antes de pedir. Na cozinha, os trabalhadores do restaurante estão cozinhando, servindo e recebendo pedidos continuamente. As pessoas receberão sua comida assim que estiver cozida.

themightysapien
fonte
10
Se alguém quer maçãs comparadas com maçãs; se você quisesse que o cenário do restaurante fosse síncrono, quando você pedir comida, todos os outros no restaurante teriam que esperar a chegada da comida antes que eles pudessem pedir a comida etc. Agora, parece um cenário realmente idiota, mas no mundo da computação esse cenário pode ser útil. Digamos que cada cliente não possa decidir o que deseja e, em vez disso, queira ver o que o cliente anterior pede para decidir se quer ou não isso, então faz sentido que eles tenham que esperar a comida chegar antes de fazer o pedido.
Fonix
Só para adicionar ... pode ser que as operações sejam executadas como em uma fila nas operações assíncronas ... Mas isso não é obrigatório.
Sreekanth Karumanaghat
5
muito simples e exemplo da vida real
Manish
Para dar o exemplo ainda mais, eles podem considerar vários portões para a venda de ingressos. Portanto, cada linha pode trabalhar de forma assíncrona a partir da outra linha, mas de forma síncrona dentro de si!
Saeed Ahadian
334

Explicação simples por analogia

Execução síncrona

Meu chefe é um homem ocupado. Ele me diz para escrever o código. Eu digo a ele: Tudo bem. Eu começo e ele está me olhando como um abutre, parado atrás de mim, do meu ombro. Estou tipo "Cara, WTF: por que você não faz alguma coisa enquanto eu termino isso?"

ele é como: "Não, eu estou esperando aqui até você terminar." Isso é síncrono.

Execução assíncrona

O chefe me diz para fazê-lo e, em vez de esperar ali pelo meu trabalho, o chefe sai e faz outras tarefas. Quando termino meu trabalho, simplesmente reporto ao meu chefe e digo: "Estou CONCLUÍDO!" Esta é a execução assíncrona.

(Siga meu conselho: NUNCA trabalhe com o chefe atrás de você.)

BKSpurgeon
fonte
29
Estou FEITO ... é ainda mais engraçado quando você toma isso como uma demissão.
Daedric 14/12
91

Execução síncrona significa que a execução ocorre em uma única série. A->B->C->D. Se você estiver chamando essas rotinas, Aexecutará, terminará, Biniciará, terminará, Ciniciará etc.

Com a execução assíncrona , você inicia uma rotina e a deixa em segundo plano enquanto inicia a próxima e, em algum momento, diga "aguarde o término". É mais como:

Iniciar A->B->C->D->Wait para Aao fim

A vantagem é que você pode executar B, Ce ou Denquanto Aainda estiver em execução (em segundo plano, em um encadeamento separado), para que você possa aproveitar melhor seus recursos e ter menos "travamentos" ou "esperas".

Reed Copsey
fonte
@ Reed Copsey ...... Obrigado por uma explicação tão boa ..... Só queria mais algumas informações sobre o Async-Exec ...... Com base na sua resposta no Async Exec .... Inicie A-> B-> C-> D-> Aguarde A terminar ... Então todos os A, B, C, D começam de uma vez ...... e eles esperam A terminar ..... O mesmo acontece B só terminará depois que A terminar e C depois de B e assim por diante ......? Ou B pode terminar primeiro e depois A pode terminar?
Devrath
8
@ Devrath As operações podem terminar em qualquer ordem.
Reed Copsey
59

Em poucas palavras, sincronização refere-se a dois ou mais pontos de início e término de processos , NÃO suas execuções . Neste exemplo, o ponto final do Processo A é sincronizado com o ponto inicial do Processo B:

SÍNCRONO
   | -------- A -------- |
                     | -------- B -------- |

Os processos assíncronos, por outro lado, não têm seus pontos de início e de extremidade sincronizados:

ASSÍNCRONO
   | -------- A -------- |
         | -------- B -------- |

Onde o Processo A se sobrepõe ao Processo B, eles estão executando simultaneamente ou de forma síncrona (definição de dicionário), daí a confusão.

ATUALIZAÇÃO: Charles Bretana melhorou sua resposta , então agora essa resposta é apenas um mnemônico simples (potencialmente simplificado).

entr0p3te
fonte
2
cópia da resposta de Charles Bretana
Dinesh Saini
2
@DineshSaini - Meu diagrama é um pouco diferente. Para maior clareza, coloquei A em cima de B nos dois casos, enfatizando se os pontos de partida e de extremidade estão sincronizados. O diagrama de Charles Bretana coloca os processos síncronos em sequência sem "sincronizar" nada. (Eu ia comentário abaixo sua resposta para "melhorar", mas percebeu que seria mais fácil apenas para mostrar o novo diagrama.)
entr0p3te
Ótimos diagramas. Penso que a maneira de chamar o SYNC superior é que o início e o final de A no diagrama superior são efetivamente ao mesmo tempo, no sentido de que nenhum outro evento tenha interferido ou poderia ter interferido na conclusão de A. A sincronização pode se referir a uma única tarefa isoladamente, como adicionar aos registros da CPU, cujo início e fim são tão próximos, que efetivamente são realmente síncronos no dicionário.
Dean Radcliffe
55

Síncrono significa que o chamador aguarda a resposta ou conclusão, assíncrono que o chamador continua e uma resposta vem mais tarde (se aplicável).

Como um exemplo:

    static void Main(string[] args)
    {
        Console.WriteLine("Before call");
        doSomething();
        Console.WriteLine("After call");
    }

    private static void doSomething()
    {
        Console.WriteLine("In call");
    }

Isso sempre produzirá:

Before call
In call
After call

Mas se tornássemos doSomething assíncrono (várias maneiras de fazê-lo), a saída poderia se tornar:

Before call
After call
In call

Porque o método que faz a chamada assíncrona continuaria imediatamente com a próxima linha de código. Eu digo "poderia", porque a ordem de execução não pode ser garantida com operações assíncronas. Também pode ser executado como o original, dependendo do tempo de thread, etc.

Ragoczy
fonte
34

Eu acho que essa é uma explicação um pouco abrangente, mas ainda esclarece usando o exemplo da vida real.

Exemplo pequeno:

Digamos que a reprodução de um áudio envolva três etapas:

  1. Obtendo a música compactada do disco rígido
  2. Descomprima o áudio.
  3. Reproduza o áudio não compactado.

Se o seu reprodutor de áudio executar 1,2,3 seqüencialmente para cada música, ele será sincronizado. Você terá que esperar algum tempo para ouvir a música até que ela seja realmente buscada e descompactada.

Se o seu reprodutor de áudio executar uma etapa 1,2,3 independente um do outro, será assíncrono. ie Durante a reprodução do áudio 1 (etapa 3), se ele buscar o áudio 3 do disco rígido em paralelo (etapa 1) e descomprimir o áudio 2 em paralelo. (passo 2) Você acabará ouvindo a música sem esperar muito para buscar e descomprimir.

aJ.
fonte
32

As operações de sincronização e assíncrona tratam da ordem de execução de uma nova tarefa em relação à tarefa atual. Duas tarefas em uma tabela: tarefa atual e uma nova tarefa

Síncrono (bloqueio) - implica que as tarefas serão executadas uma a uma. Uma próxima tarefa é iniciada somente após a conclusão da tarefa anterior. Task 2não é iniciado até Task 1terminar

Assíncrono (sem bloqueio) - implica que a tarefa retorna o controle imediatamente com a promessa de executar um código e notificar o resultado posteriormente (por exemplo, retorno de chamada, recurso). Task 2é executado mesmo se Task 1não estiver terminado

Portanto, responda sobre sincronização e assíncrona: no iOS , no Android

yoAlex5
fonte
O diagrama no exemplo multithread síncrono parece representar threads em execução simultânea?
samis 30/05
@ sαmosΛris você pode considerar Tópico como eixo X que indica cronograma
yoAlex5
O eixo x é convencionalmente usado como uma dimensão espacial; o eixo t para o tempo - uma distinção importante encontrada na análise da complexidade do algoritmo.
samis 30/05
23

Simplesmente disse que a execução assíncrona está fazendo coisas em segundo plano.

Por exemplo, se você quiser baixar um arquivo da Internet, poderá usar uma função síncrona para fazer isso, mas ele bloqueará seu encadeamento até o término do download do arquivo. Isso pode fazer com que seu aplicativo não responda a qualquer entrada do usuário.

Em vez disso, você pode baixar o arquivo em segundo plano usando o método assíncrono. Nesse caso, a função de download retorna imediatamente e a execução do programa continua normalmente. Todas as operações de download são feitas em segundo plano e seu programa será notificado quando terminar.

Michał Piaskowski
fonte
1
como seu exemplo será mais rápido? No final, você não pode reproduzir o arquivo até que o período de download seja concluído. Você pode explicar? Acho que não entendi assíncrono e provavelmente sou eu, mas o que essa outra etapa ou processo estaria fazendo enquanto o outro processo estivesse em execução (obtendo o download)? Quero dizer, o que você pode fazer até receber o processo assíncrono de volta (download) no seu aplicativo ... Não entendi. Então, você ainda teria que mostrar ao usuário algum tipo de mecanismo de espera, não importa o que, em qualquer situação?
PositiveGuy
4
Não precisa ser mais rápido. Trata-se de não bloquear o segmento principal, para que ele possa processar outro tipo de entrada do usuário. Por exemplo, o usuário pode querer cancelar o download ou começar a baixar outro arquivo simultaneamente.
Michał Piaskowski
19

Como um exemplo realmente simples,

SÍNCRONO

Imagine 3 alunos da escola instruídos a fazer uma corrida de revezamento em uma estrada.

O primeiro aluno percorre sua distância, para e passa o bastão para o segundo. Ninguém mais começou a correr.

1------>
        2.
                3.

Quando o 2º aluno recupera o bastão, ela começa a correr sua distância.

      1.
        2------>
                3.

A 2ª aluna desamarrou o cadarço. Agora ela parou e amarrou novamente. Por esse motivo, o horário de término do segundo turno foi prorrogado e o horário de início do terceiro turno.

      1.
        --2.--->
                3.

Esse padrão continua até o dia 3 recuperar o bastão do 2º e terminar a corrida.

ASSÍNCRONO

Imagine 10 pessoas aleatórias andando na mesma estrada. Eles não estão em uma fila, é claro, apenas caminhando aleatoriamente em diferentes lugares da estrada em diferentes ritmos.

O cadarço da 2ª pessoa se desamarrou. Ela parou para amarrá-lo novamente.

Mas ninguém está esperando que ela o amarre. Todo mundo ainda está andando da mesma maneira que antes, no mesmo ritmo deles.

10-->    9-->
   8--> 7-->   6-->
 5-->     4-->
1-->   2.    3-->
Dasun Nirmitha
fonte
18

Eu criei um gif para explicar isso, espero ser útil: olha, a linha 3 é assíncrona e outras são síncronas. todas as linhas antes da linha 3 devem esperar até que a linha termine seu trabalho, mas, como a linha 3 é assíncrona, a próxima linha (linha 4) não espera pela linha 3, mas a linha 5 deve esperar a linha 4 concluir seu trabalho, e a linha 6 deve esperar pela linha 5 e 7 pela 6, porque a linha 4,5,6,7 não é assíncrona. a linha 3 é assíncrona e outras são síncronas

Abolfazl Miadian
fonte
12

Ao executar uma sequência como: a> b> c> d>, se tivermos uma falha no meio da execução, como:

a
b
c
fail

Então, recomeçamos do começo:

a
b
c
d

isso é síncrono

Se, no entanto, tivermos a mesma sequência a ser executada: a> b> c> d>, e tivermos uma falha no meio:

a
b
c
fail

... mas em vez de reiniciar desde o início, reiniciaremos a partir do ponto de falha:

c
d

... isso é conhecido como assíncrono.

mohamed tharik
fonte
1
você poderia ser mais preciso no que você quer dizer, fornecendo mais contexto aos seus exemplos
krichard
5
Esta resposta simplesmente não está correta.
Marquês de Lorne
7

Você está confundindo Synchronous com Parallel vs Series. Média síncrona, tudo ao mesmo tempo. Meios sincronizados relacionados entre si, que podem significar em série ou em um intervalo fixo. Enquanto o programa está fazendo tudo, ele é executado em série. Obter um dicionário ... é por isso que tomamos chá sem açúcar. Você toma chá ou chá adoçado.

Joe
fonte
3
Na verdade, "sincronizado" refere-se à relação entre as instruções e o relógio. NÃO o relacionamento entre as próprias instruções. É por isso que parece "síncrono" para trás, na verdade significa um após o outro: mas as instruções são SINCRONIZADAS no relógio. "Assíncrono" significa "a qualquer momento, não me importo quando isso acontece": as instruções não precisam ser sincronizadas com o relógio. Sim, existe uma definição de dicionário, mas você deve ter certeza de que está definindo a situação correta.
Tom Padilla
1
Síncrono não significa 'tudo ao mesmo tempo' na computação. Você está confundindo sincronização com síncrona e 'paralela versus série' com chá e chá doce. A resposta não faz nenhum sentido.
Marquês de Lorne
7

Síncrono significa basicamente que você só pode executar uma coisa de cada vez. Assíncrono significa que você pode executar várias coisas ao mesmo tempo e não precisa concluir a execução da coisa atual para passar à próxima.

Mike
fonte
Não é possível executar várias coisas ao mesmo tempo chamado Multithreading em vez de assíncrono.
Sreekanth Karumanaghat
7

Use um exemplo de instruções para fazer um café da manhã

  1. Despeje uma xícara de café.
  2. Aqueça uma panela e frite dois ovos.
  3. Frite três fatias de bacon.
  4. Torradas dois pedaços de pão.
  5. Adicione a manteiga e a geléia na torrada.
  6. Despeje um copo de suco de laranja.

Se você tiver experiência em cozinhar, execute essas instruções de forma assíncrona. você começaria a aquecer a panela para ovos e depois o bacon. Você colocava o pão na torradeira e depois começava os ovos. Em cada etapa do processo, você inicia uma tarefa e volta sua atenção para as tarefas que estão prontas para sua atenção.

O café da manhã é um bom exemplo de trabalho assíncrono que não é paralelo. Uma pessoa (ou thread) pode lidar com todas essas tarefas. Continuando a analogia do café da manhã, uma pessoa pode fazer o café da manhã de forma assíncrona iniciando a próxima tarefa antes da conclusão da primeira. O cozimento progride se alguém está assistindo ou não. Assim que você começar a aquecer a panela para os ovos, você pode começar a fritar o bacon. Quando o bacon começar, você pode colocar o pão na torradeira.

Para um algoritmo paralelo, você precisaria de vários cozinheiros (ou threads). Um faria os ovos, um o bacon, e assim por diante. Cada um seria focado apenas nessa tarefa. Cada cozinheiro (ou linha) seria bloqueado de forma síncrona, esperando que o bacon estivesse pronto para virar ou a torrada estourasse.

Referência dos conceitos de programação assíncrona

Hla Min Swe
fonte
4

Uma operação síncrona faz seu trabalho antes de retornar ao chamador.

Uma operação assíncrona faz (a maioria ou todo) o seu trabalho após retornar ao chamador.

Maxim Eliseev
fonte
o link está morto.
que você
1

Com relação à definição " ao mesmo tempo " de execução síncrona (que às vezes é confusa), aqui está uma boa maneira de entendê-la:

Execução síncrona : todas as tarefas em um bloco de código são executadas ao mesmo tempo.

Execução assíncrona : todas as tarefas em um bloco de código não são todas executadas ao mesmo tempo.

docta_faustus
fonte
Eu concordaria mais com isso se você dissesse "efetivamente ao mesmo tempo" ou "para fins práticos". Acho que o voto negativo foi pela declaração imprecisa de que as coisas realmente estão sendo feitas no mesmo momento.
Dean Radcliffe
1

Eu acho que uma boa maneira de pensar nisso é um clássico de corrida de revezamento

Síncrono : Processos como membros da mesma equipe, eles não serão executados até receberem o bastão (final da execução do processo / corredor anterior) e, no entanto, todos estão agindo em sincronia.

Assíncrono : onde processos como membros de equipes diferentes na mesma pista de corrida de revezamento, eles correm e param, assíncronos entre si, mas dentro da mesma corrida (execução geral do programa).

Isso faz sentido?

Sharif
fonte
1

Uma definição diferente em inglês de Synchronize está aqui

Coordenada; combinar.

Eu acho que é uma definição melhor do que "Acontecendo ao mesmo tempo". Essa também é uma definição, mas não acho que seja a que se encaixa da maneira como é usada na Ciência da Computação.

Portanto, uma tarefa assíncrona não é co-coordenada com outras tarefas, enquanto uma tarefa síncrona é co-coordenada com outras tarefas, portanto, uma é concluída antes que a outra seja iniciada.

Como isso é alcançado é uma questão diferente.

Greg Gum
fonte
0

Síncrono significa que a execução do modo de fila, uma a uma, será executada. Suponha que haja apenas um veículo que precise ser compartilhado entre amigos para chegar ao seu destino, um por um veículo seja compartilhado.
No caso assíncrono, cada amigo pode alugar um veículo e chegar ao seu destino.

Rohit
fonte
0

Sim, significa síncrono ao mesmo tempo, literalmente, significa trabalhar todos juntos. vários objetos / humanos no mundo podem fazer várias coisas ao mesmo tempo, mas se olharmos para o computador, ele diz que significa síncrono onde os processos funcionam juntos, ou seja, os processos dependem do retorno um do outro e é por isso que eles são executados. depois do outro na sequência correta. Enquanto assíncrono significa que os processos não funcionam juntos, eles podem funcionar ao mesmo tempo (se houver multithread), mas funcionam independentemente.

Saptarshi
fonte