Почти уверен, что так оно и есть, но мне хотелось бы знать наверняка, происходит ли отношение перед тем, как оно задано в случае invokeLater() или invokeAndWait()?
Методы определены в (SwingUtilities соответственно) AWT.EventQueue. Я предполагаю, что когда что-то вводится в EventQueue, происходит синхронизация, и, следовательно, в результате синхронизации возникает отношение «происходит до» и, наконец, дается видимость.
Но так ли это на самом деле? (и где я могу найти эту информацию?)
например внутри некоторого рабочего потока
...
*<1> heavy computation modifying lots of DATA*
...
SwingUtilities.invokeLater(
new Runnable() {
@Override
public void run() {
*<2> is visibility of modified DATA guaranteed?*
}
}
);
например внутри какой-то нити
...
SwingUtilities.invokeAndWait(
new Runnable() {
@Override
public void run() {
...
*<1> change some DATA*
}
}
);
*<2> is visibility of modified DATA guaranteed?*