Pessoal boa noite.
Antes de mais nada, digo que já procurei no google dezenas de vezes, sempre obtive as mesmas respostas, e nunca funciona!
Estou tentando setar uma Thread como daemon, para que ela continue rodando após o final da execução do meu main.
Segue o código:
package javaapplication1;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JavaApplication1 {
public static void main(String[] args) {
Thread someThread = new Thread(new Runnable()
{
@Override
public void run()
{
try {
File f = new File("test.txt");
FileWriter fw = new FileWriter(f);
for(int i = 0;i<1000;i++){
fw.append('\n');
fw.append('a');
System.out.println(i);
}
fw.close();
} catch (IOException iOException) {
}
}
});
someThread.setDaemon(true);
System.out.println(someThread.isDaemon());
someThread.start();
}
}
A idéia é simples, abrir um file, fazer o append de letras ‘a’, e encerrar.
O problema que, mesmo estando como daemon, as vezes cria um arquivo vazio, e as vezes nem cria nada, e nunca chega a escrever.
Se eu setar como false no setDaemon, funciona.
(Aquele println do IsDaemon, sempre imprime true)
Alguém me dá uma luz, pq o meu daemon está “morrendo” quando o main finaliza? Pelo que li, essa thread, setada como daemon deveria continuar rodando em background, até que terminasse.