ffranceschi:
Pelo que entendi, vc tem as 2 threads, A e B. A thread B só é iniciada qdo a thread A acabar.
Se for isso, pq teria duas threads? Mas se quisesse com duas threads, há algumas formas de resolver isso:
- Criar a thread B quando a thread A acabar
- Criar as duas threads e usar o wait e notify
- Tem o join como citado
Thread A e B são iniciados quase que ao mesmo tempo.
Só que thread B dorme 10 segundos na esperança de que A tenha terminado seu trabalho para continuar o seu.
O problema exige dois threads, pois estou visualizando possíveis exceções no uso do programa. Deixa-me explicar.
Suponha-se que eu coloque um botão para testar a conexão do banco na tela de configuração, como você havia me dito.
Esse código abaixo será executado para iniciar a conexão com o banco, caso todas as informações estejam corretas é rapidinho. Agora, se alguns dos parâmetros forem inválidos, o trabalho se torna exaustivo (Demorando cerca de 1 minuto ou mais). Isso trava minha aplicação.
public void inicia(String bd, String user, String ssn)
{
try
{
cfg = new Configuration().configure().setProperty(Environment.URL,bd).setProperty(Environment.USER, user).setProperty(Environment.PASS, ssn);
sessionFactory = cfg.buildSessionFactory();
}
catch(Throwable e)
{
new ExceptionInInitializerError(e);
}
}
Qual a minha solução.
Coloco um Thread para iniciar o banco, e outro que apos 9 segundos dormindo, tenta abrir uma sessão com o banco, caso não haja conexão isso me retorna um runTimeException e eu aviso o usuario para configurar novamente o banco.