我第一次在Java中使用线程。让我知道这是什么导致无限循环以及如何解决它。我认为该问题是由于我同时使用GUI和线程而引起的。
发生的情况是弹出了无限数量的GUI。
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new RollplayGUI();
}
});
}
public RollplayGUI() {
createGUI();
RollplayGUI rg = new RollplayGUI();
Thread trg = new Thread(rg);
trg.setDaemon(true);
trg.run();
}
public void run() {
//Some fun stuff my daemon thread is supposed to do
}
我这样做的原因是run()方法会执行一些网络代码,这些代码会阻塞,直到它从另一个程序获得连接为止。
最佳答案
您的代码失败,因为RollplayGUI构造函数实例化了一个新的RollplayGUI对象。这将导致无限循环,并可能导致堆栈溢出。