Article image
Marcos Bassetto
Marcos Bassetto17/05/2024 23:53
Compartilhe

Programação Concorrente em Java

    A programação concorrente é um aspecto fundamental na construção de aplicações modernas e eficientes. Java, sendo uma linguagem de programação robusta, oferece suporte extensivo para programação concorrente através de sua API de Concorrência.

    O que é Programação Concorrente?

    A programação concorrente é um paradigma de programação onde várias tarefas são iniciadas, executadas e concluídas em ordem sobreposta durante o mesmo período de tempo. Ela é essencial para atividades que podem ser divididas em tarefas independentes e executadas simultaneamente.

    Threads em Java

    Em Java, a unidade básica de programação concorrente é a Thread. Uma thread é um fluxo de controle dentro de um programa que pode ser executado simultaneamente com outras threads.

    Java

    class MinhaThread extends Thread {

      public void run(){

        System.out.println("Thread está sendo executada.");

      }

    }

    public class Exemplo {

      public static void main(String args[]) {

        MinhaThread t1 = new MinhaThread();

        t1.start();

      }

    }

    Código gerado por IA. Examine e use com cuidado. Mais informações em perguntas frequentes.

    Interface Runnable

    A interface Runnable é outra maneira de criar uma thread. Ao implementar a interface Runnable, você precisa sobrescrever o método run().

    Java

    class MinhaRunnable implements Runnable {

      public void run(){

        System.out.println("Runnable está sendo executada.");

      }

    }

    public class Exemplo {

      public static void main(String args[]) {

        Thread t1 = new Thread(new MinhaRunnable());

        t1.start();

      }

    }

    Código gerado por IA. Examine e use com cuidado. Mais informações em perguntas frequentes.

    Sincronização

    A sincronização é usada para controlar o acesso a recursos compartilhados. Em Java, o synchronized é usado para obter o bloqueio de um objeto para garantir a execução consistente.

    Java

    class Contador {

      int cont = 0;

      public synchronized void incrementar() {

        cont++;

      }

    }

    public class Exemplo {

      public static void main(String args[]) throws Exception {

        Contador c = new Contador();

        Thread t1 = new Thread(new Runnable() {

          public void run() {

            for(int i = 0; i < 1000; i++) {

              c.incrementar();

            }

          }

        });

        t1.start();

        t1.join();

        System.out.println("Contagem: " + c.cont);

      }

    }

    Código gerado por IA. Examine e use com cuidado. Mais informações em perguntas frequentes.

    Espero que este artigo tenha lhe dado uma boa introdução à programação concorrente em Java. Lembre-se, a prática é a chave para dominar qualquer conceito, então continue praticando!

    Compartilhe
    Comentários (0)