Dúvida sobre threads

Olá, eu gostaria de saber neste tópico se é possível deixar uma thread sempre em execução enquanto o computador está ligado? Exemplo a jframe do meu programa é fechada mais uma thread fica em execução trabalhando em algumas coisas, isso é possível?

Sim, é possível sim, você só tem que setar o jFrame o método setDefaultCloseOperation para qualquer coisa diferente de EXIT_ON_CLOSE e se preocupar em deixar a Thead ocupada para ela não terminar, como lendo uma porta, verificando uma pasta, um loop infinito…

Veja um exemplo.

    public static void main(String[] args) {
        long horaInicio = System.currentTimeMillis();
        new Thread(new Runnable() {
            class MyFrame extends JFrame {
                public MyFrame() {
                    super.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
                    super.setSize(800, 600);
                }
            }
            public void run() {
                new MyFrame().setVisible(true);
            }
        }).start();
        new Thread(new Runnable() {
            public void run() {
                while (true) {
                    long percorrido = (System.currentTimeMillis() - horaInicio) / 1000;
                    System.out.println("Estou executando a " + percorrido + " segundos");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException ex) {
                    }
                }
            }
        }).start();
    }

E caso isso ou alguma outra postagem resolva o seu problema, por favor, não esqueça de marcar o tópico como resolvido para o fórum não ficar poluído.

Valeu.

1 curtida

Ok, muito obrigado :slightly_smiling: