Buongiorno a tutti.
l mio problema è il seguente...
Ho realizzato un programma in Java con un JFrame (utilizzo Swing).
Il programma va a leggere/scrivere, ogni 100ms, da/in un PLC.
Per chi non fosse pratico di PLC può equipararlo ad un database: creo la connessione, lancio funzioni per leggere o scrivere dei dati e chiudo la connessione.

Nel main del programma richiamo un Timer come da codice qui sotto.
codice:
private static Timer tmrGenerale = new Timer(100, new java.awt.event.ActionListener() {
   // Fremo il timer
   tmrGenerale.stop();
   // Leggo e scrivo i dati dal/sul PLC
   ..............
   // Riavvio il timer
   tmrGenerale.start();
}
Il programma funziona correttamente ma presenta un inconveniente in quanto, soprattutto quando vado a leggere/scrivere quantità di dati elevate, il programma rimane bloccato per il tempo necessario a concludere tali operazioni. In quei momenti il programma rimane bloccato e risulta difficoltoso eseguire operazioni come navigare tra i menu e tutte le operazioni da eseguire con il mouse.

Per ovviare a questo problema ho trovato in rete dei riferimenti ai Tread per far eseguire le operazioni di lettura/scrittura in "parallelo" rispetto al resto del programma.
Prima di lanciarmi a testa bassa nello studio dei Thread desidero capire se sto andando nella direzione giusta oppure se vi sono soluzioni migliori.

Se poteste indicarmi la direzione da prendere per ovviare al mio problema, avrete la mia eterna gratitudine

Grazie in anticipo per l'attenzione prestatami