为什么这段代码会冻结我的 Swing 应用程序?Swing 组件位于与我的 InfiniteLoop 线程不同的线程中。如果我在每次打印之前在 run() 方法中引入睡眠,那么程序可以正常工作。有没有人有任何线索?
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI(); // <-- creates the swing frame and component
}
});
Thread t = new Thread(new InfiniteLoop());
t.start();
}
public class InfiniteLoop implements Runnable
{
private static Logger logger = Logger.getLogger(InfiniteLoop.class);
public void run()
{
while(true)
{
log.info("test");
}
}
}