Retornar para main() após usar método start()

Pessoal, após executar o comando ‘gerenciador.start()’ , meu programa não retorna para a função main, e não printa a mensagem ‘acabou’; ele simplesmente executa o comando que falei. Alguém sabe por que isso acontece ?

 public static void main(String[] args) 
 {
    		
   		gerenciador.start();
   		//elev.start();
  		System.out.println("acabou");
 }

posta o método start pra gente ver

vamos la

se vc lida com threads, vc tem que saber trabalhar com a sincronização das mesmas.

se o que vc executa no start criar uma thread nova, em tese vc vai executar de forma independente da thread corrente e em algum momento vc vera o “acabou” enquanto o start executa.

vc precisa pegar a thread que o gerenciador inicia e chamar join pra ter certeza que o “acabou” vai executar depois da thread

https://docs.oracle.com/javase/tutorial/essential/concurrency/join.html

aqui tem um pequeno exemplo:

public class A implements Runnable {

    public void run() { 
      for(int i = 1; i< 5; i++ ){ 
        System.out.println("i="+i); 
        try { Thread.sleep(1000);  } catch ( InterruptedException ie ) { ie.printStackTrace(); }
      }
    }
    public Thread start() { Thread t = new Thread( this ); t.start(); return t; }

    public static void main(String arg[]) throws InterruptedException {
          A a = new A();
          Thread t = a.start();
          t.join(); /* experimente comentar esta linha e executar de novo */
          System.out.println("fim");
    }

}