Come ampiamente noto, qualsiasi cosa relativa ai componenti Swing deve essere eseguita su the event dispatch thread. Questo vale anche per models dietro i componenti, ad esempio TableModel. Abbastanza facile nei casi elementari, ma le cose diventano piuttosto complicate se il modello è una "live view" di qualcosa che deve essere eseguito su un thread separato perché sta cambiando rapidamente. Ad esempio, una visualizzazione live di una borsa valori su una tabella di distribuzione. I mercati azionari di solito non si verificano sull'EDT.Come sincronizzare il modello Swing con un modello "reale" che cambia rapidamente?
Quindi, qual è il modello preferibile per (de) accoppiare il modello Swing che deve essere sull'EDT e un modello "reale", thread-safe che deve essere aggiornabile da qualsiasi luogo, in qualsiasi momento? Una possibile soluzione sarebbe quella di fare in realtà split the model in due copie separate: il modello "reale" più la sua controparte Swing, che è un'istantanea del modello "reale". Vengono quindi (bidirezionalmente) sincronizzati sull'EDT di tanto in tanto. Ma questo sembra gonfiare. È davvero l'unico approccio praticabile o ci sono altri modi, o più standard? Biblioteche utili? Nulla?
produttore/consumatore? –