Java: как создать бесконечный цикл в классе без переопределения main

#java #loops

#java #циклы

Вопрос:

У меня есть класс, которому для правильной работы требуется бесконечный цикл, однако после его создания он не позволяет продолжить выполнение последующего кода. Как бы я создал бесконечный цикл внутри класса, при этом все еще позволяя выполнять следующий код в main?

Вот мой код:

 import javax.swing.JFrame;
import javax.swing.*;
class Z{
    public Z(int x,int y){
        JWindow j=new JWindow();
        j.setVisible(true);
        j.setLocation(x,y);
        j.setSize(100,100);

        while(true) {
            System.out.println(0);
        }
    }
}
public class exampleCode{
    public static void main(String[] args) {

        JFrame f=new JFrame();
        f.setVisible(true);
        f.setDefaultCloseOperation(3);

        f.setResizable(false);
        new Z(100,100);
        System.out.println(1);
    }
}
  

Комментарии:

1. прочитайте о потоках. вам нужно запустить его в другом потоке

Ответ №1:

Вы должны узнать о потоках, многопоточности в Java.

Поскольку ваша программа является однопоточной, ваш бесконечный цикл while предотвратит любое дальнейшее выполнение кода (кроме внутреннего while блока). Чтобы избежать этого, вы должны запустить свой бесконечный цикл в новом потоке.

Для достижения этого существует много способов / стилей, и это один из самых коротких:

 new Thread(new Runnable() {

    @Override
    public void run() {
        // Your infinite loop here
        while(true) {
            System.out.println(0);
        }
    }
}).start();
  

Комментарии:

1. Спасибо, это именно то, что я искал!