Aprenda como criar threads de duas formas diferentes

Quando uma thread é criada, deve permanentemente ser limitada a um objeto com um método run(). Quando a thread for iniciada, o método run() definido na classe será executado. 

Há duas maneiras para criar uma thread. A primeira forma, deve declarar uma classe que herde a classe Thread.  Quando a classe é instanciada, a thread e o objeto são criados juntos e o objeto é limitado automaticamente à thread. Chamando o método start() do objeto, a thread é iniciada e executa imediatamente o método run() do objeto. O código a seguir demonstra esta forma de implementação de threads.


    // A classe ThreadBasica1 herda de Thread
    class ThreadBasica1 extends Thread {
        // Este método(run()) é chamado quando a thread é iniciada
        public void run() {
        }
    }

    // Criando e iniciando a thread definida
    Thread thread = new ThreadBasica1();
    thread.start();

A segunda maneira deve criar a thread implementando a interface Runnable e fornecer um objeto com um método run().  Este objeto será associado permanentemente à thread.  O método run() do objeto será invocado quando a thread for iniciada. Este método de criação de threads é útil se você quiser muitas threads que compartilham um objeto. Este exemplo que cria um objeto runnable e cria então uma thread associada ao objeto runnable.

     class ThreadBasica2 implements Runnable {
        // Este método(run()) é chamado quando a thread é iniciada
        public void run() {
        }
    }

    // Cria o objeto que contém o método run()
    Runnable runnable = new ThreadBasica2();
   
    // Cria uma thread que recebe o comportamento do objeto runnable
    Thread thread = new Thread(runnable);
   
    // Inicia a thread
    thread.start();