Estou desenvolvendo o jogo um contra cem e estou com duvida no seguinte como se cria uma thread , tenho um codigo mas não entendo
porque é necessario uma classe para usar a thread???
codigo :
class MyThread extends Thread {
  int count;
  MyThread() {
    count = 0;
  }
  public void run() {
    System.out.println("Minha Thread Iniciou.");
    try {
      do {
        Thread.sleep(1000);
        System.out.println("Minha Thread, contador == " + count);
        count++;
      } while (count < 5);
  
    } catch (InterruptedException exc) {
      System.out.println("Thread Parada");
    }
    System.out.println("Thread Acabou.");
  }
Então poderiam me explicar este codigo passo a passo??
e porque deste codigo para chamar a classe não poderia executar direto
public class Main {
    public static void main(String args[]) {
      System.out.println("Thread Principal Inicio");
      MyThread mt = new MyThread();
    mt.start();
    do {
      System.out.println("Thread Principal");
      try {
        Thread.sleep(1000);
      } catch (InterruptedException exc) {
        System.out.println("thread principal Interrompida");
      }
    } while (mt.count != 5);
    System.out.println("thread  principal terminada");
  }
}
Não entendo o porque do while e porque ter duas coisas para executar uma thread???