It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。
6年前关闭。
我想很多次为什么
从任何
实际上,
排列
可以从任何其他
而且,Java制造者真的忘记了使用
如果swing是多线程的,可能会出现什么问题?
我的Java程序由于以下原因而被“冻结”了很多时间:/
6年前关闭。
我想很多次为什么
Java
在与Swing
一起工作时强迫我们使用EDT?从任何
Swing
更新Thread
组件不是容易得多,换句话说,可以是multithreaded
。实际上,
SwingUtilities.invokeAndWait
和SwingUtilities.invokeLater
可以帮助我们排列
Swing
事件,但是,如果GUI
可以从任何其他
Thread
更新组件。而且,Java制造者真的忘记了使用
Swing
线程安全吗?如果swing是多线程的,可能会出现什么问题?
我的Java程序由于以下原因而被“冻结”了很多时间:/
最佳答案
如果swing是多线程的,可能会出现什么问题? Java制造商真的忘记过使Swing线程安全吗?
已经进行了许多尝试来创建多线程GUI,但是most have failed要么是因为它们不起作用,要么是使用起来过于复杂。单线程模型是标准且最简单的解决方案。
我的Java程序因此而“冻结”了十几次
那是因为您没有按应有的方式使用Swing。它是单线程的事实并不能阻止您在另一个线程上运行长任务(并且应该这样做以防止冻结)。您可以在Concurrency in Swing Tutorial中阅读有关它的更多信息。尤其是:
谨慎使用并发对Swing程序员尤其重要。编写良好的Swing程序使用并发创建一个永远不会“冻结”的用户界面-该程序始终在响应用户交互,无论它在做什么。要创建响应式程序,程序员必须学习Swing框架如何使用线程。