So teilen Sie Daten zwischen zwei SwingWorker-Klassen
Einführung:
In Java verwenden SwingWorker ermöglicht die Ausführung lang laufender Aufgaben im Hintergrund, ohne den Hauptthread zu blockieren. Manchmal ist es notwendig, Daten zwischen mehreren SwingWorker-Klassen auszutauschen. Dieser Artikel stellt eine Lösung für diese Anforderung vor.
Lösungsübersicht:
Die Lösung nutzt das Executor-Framework, insbesondere Executors.newCachedThreadPool(), um mehrere SwingWorker-Aufgaben gleichzeitig auszuführen . Jede Aufgabe ist für einen bestimmten Vorgang verantwortlich und der Datenaustausch erfolgt über gemeinsam genutzte Variablen oder Methodenaufrufe.
Implementierungsdetails:
1. Aufgabenausführung:
2. Datenfreigabe:
Beispielcode:
// SwingWorker task that performs a long-running operation and shares data class MyTask extends SwingWorker<Void, Integer> { private SharedData sharedData; // Shared variable for data exchange @Override protected Void doInBackground() { // Perform the long-running operation // Update the sharedData variable return null; } @Override protected void done() { // Notify other tasks that the data is ready for consumption } } // Main class that creates and executes the tasks class Main { private Executor executor = Executors.newCachedThreadPool(); private SharedData sharedData = new SharedData(); // Create shared data instance public static void main(String[] args) { // Create and execute multiple MyTask instances executor.execute(new MyTask(sharedData)); executor.execute(new MyTask(sharedData)); // Other thread operations and UI updates can continue here } }
Hinweis:
Diese Lösung stellt sicher, dass der Datenaustausch zwischen SwingWorker-Aufgaben synchronisiert und Thread-sicher ist, was eine nahtlose Kommunikation erleichtert und Datenbeschädigungen verhindert. Das Executor-Framework verwaltet die Aufgabenausführung effizient und ermöglicht so eine optimale Nutzung der Systemressourcen.
Das obige ist der detaillierte Inhalt vonWie teile ich Daten zwischen zwei SwingWorker-Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!