A programação síncrona e assíncrona são dois paradigmas fundamentais que influenciam a forma como os programas lidam com a execução de tarefas e a comunicação entre diferentes partes do código.
Síncrono:
Na programação síncrona, as operações são executadas uma após a outra, de forma sequencial. Quando uma tarefa é iniciada, o programa espera até que ela seja concluída antes de passar para a próxima. Isso significa que o fluxo de controle do programa é bloqueado até que a operação atual seja finalizada.
public class ExemploSincrono {
public static void main(String[] args) {
System.out.println("Início do Programa");
// Executa a operação síncrona
operacaoSincrona();
System.out.println("Fim do Programa");
}
public static void operacaoSincrona() {
System.out.println("Início da Operação Síncrona");
// Simula uma operação demorada
for (int i = 0; i < 5; i++) {
System.out.println("Executando passo " + i);
}
System.out.println("Fim da Operação Síncrona");
}
}
Assíncrono:
Na programação assíncrona, as operações podem ser executadas em segundo plano sem bloquear o fluxo principal do programa. Isso permite que o programa continue a executar outras tarefas enquanto aguarda a conclusão de operações demoradas.
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class ExemploAssincrono {
public static void main(String[] args) {
System.out.println("Início do Programa");
// Executa a operação assíncrona
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> operacaoAssincrona());
// Realiza outras operações enquanto aguarda a conclusão da operação assíncrona
System.out.println("Realizando outras operações");
try {
// Aguarda a conclusão da operação assíncrona
future.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
System.out.println("Fim do Programa");
}
public static void operacaoAssincrona() {
System.out.println("Início da Operação Assíncrona");
// Simula uma operação demorada
for (int i = 0; i < 5; i++) {
System.out.println("Executando passo " + i);
}
System.out.println("Fim da Operação Assíncrona");
}
}
Bom, é isso, pessoal. Foi um exemplo simples de síncrono e assíncrono, com teoria e um pouco de código em Java na prática. Abraço a todos e até a próxima.