我只是想知道是否仍然需要确保 invokeLater() Runnable 中的同步性。
我遇到了死锁,需要在保持并发性的同时克服它。
这会是好代码的一个例子吗?:
private String text;
private void updateText()
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
synchronized(FrameImpl.this)
{
someLabel.setText(text);
}
}
});
}
抱歉这个相当糟糕的例子,但我们必须假设它text
正在被不同的线程修改,不能被注入,并且依赖于正确的值。
这是正确的解决方案还是我会通过将同步代码发送到未知上下文中无意中造成死锁问题..?
谢谢。