Como es ampliamente conocido, todo lo relacionado con los componentes Swing se debe hacer en the event dispatch thread. Esto también se aplica al models detrás de los componentes, como TableModel. Lo suficientemente fácil en casos básicos, pero las cosas se vuelven bastante complicadas si el modelo es una "vista en vivo" de algo que debe ejecutarse en un hilo separado porque está cambiando rápidamente. Por ejemplo, una vista en vivo de un mercado de valores en una JTable. Los mercados de valores no suelen ocurrir en el EDT.¿Cómo sincronizar el modelo Swing con un modelo "real" que cambia rápidamente?
Entonces, ¿cuál es el patrón preferible para (des) acoplar el modelo Swing que debe estar en el EDT, y un modelo "real", seguro para subprocesos que debe ser actualizable desde cualquier lugar, en cualquier momento? Una posible solución sería realmente split the model en dos copias separadas: el modelo "real" más su contraparte Swing, que es una instantánea del modelo "real". Luego están (bidireccionalmente) sincronizados en el EDT de vez en cuando. Pero esto se siente como hinchazón. ¿Este es realmente el único enfoque viable, o hay otras formas más estándar? Bibliotecas útiles? ¿Cualquier cosa?
productor/consumidor? –