Bom dia pessoal,
Já li alguns artigos sobre threads aqui no próprio fórum mas me restaram algumas duvidas sobre o seu funcionamento, no meu caso em especifico.
por exemplo:
Eu possuo um applet, com suas respectivas chamadas do metodo init(), start(), porém eu tenho uma barra de ferramentas em minha applet que é muito demorada para ser carrada, por exemplo new MinhaBarraDeFerramentas() seu construtor chama os métodos que causam a lentidão para carregar o applet cerca de 7 minutos em sistemas Mac Os, um problema terrível de performance. A pergunta é a seguinte:
Se eu fizer algo do tipo
MinhaBarraDeFerramentas minhaBarra = new MinhaBarraDeFerramentas();
Thread threadDaMinhaBarraDeFerramentas = new Thread(minhaBarra);
threadDaMinhaBarraDeFerramentas.start();
E dentro da classe MinhaBarraDeFerramentas sobre do metodo run() chamar os outros métodos para criar todos os menus e botões, e em paralelo continuar a execução do método init(), quando o método init() terminar provavelmente a threadDaMinhaBarraDeFerramentas ainda estará em execução, mesmo minha thread estando em execução, e o método init() já ter chegado ao fim, irá acontecer a chamada do método start() ?
Caso ocorra a chamada do método start() ela será processada normalmente ? (assumindo que não haja nenhum problema sobre o escalonamento)
Após finalizar o start() da minha applet a chamada dos métodos paint(Graphic g) stop() e destroy() irão ocorreu normalmente ?
O úsuario conseguirá utilizar o applet mesmo sem o termino do processamento da minha thread ? (pelo menos os outros recursos que já foram carregados fora da thread)
Por curiosidade a lentidão é causada por quem tenho um Choice com muitas opção cerca de 2.500 aproximadamente, e não posso remove-las, e este Choice é realmente necessário, e a idéia principal é carrega-lo em momento de execução e o usuário poder utilizar o applet sem ter que esperar todo processamento do Choice e quando o Choice estiver totalmente processado aparecer na tela em tempo de execução.
Vlw galera, se alguém souber algumas destas respostas estarei de prontidão.
Caso não fui claro em algum ponto podem perguntar…
Obrigado,