#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. Спасибо, это именно то, что я искал!