Cara Berkongsi Data Antara Dua Kelas SwingWorker
Pengenalan:
Di Java, menggunakan SwingWorker membenarkan tugasan yang berjalan lama dilaksanakan di latar belakang tanpa menyekat utas utama. Kadangkala, ia menjadi perlu untuk berkongsi data antara berbilang kelas SwingWorker. Artikel ini membentangkan penyelesaian kepada keperluan ini.
Gambaran Keseluruhan Penyelesaian:
Penyelesaian menggunakan rangka kerja Pelaksana, khususnya Executors.newCachedThreadPool(), untuk melaksanakan berbilang tugas SwingWorker secara serentak . Setiap tugas bertanggungjawab untuk operasi tertentu, dan pertukaran data berlaku melalui pembolehubah kongsi atau penyebutan kaedah.
Butiran Pelaksanaan:
1. Pelaksanaan Tugasan:
2. Perkongsian Data:
Kod Contoh:
// 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 } }
Nota:
Penyelesaian ini memastikan pertukaran data antara tugas SwingWorker disegerakkan dan selamat untuk benang, memudahkan komunikasi yang lancar dan mencegah rasuah data. Rangka kerja Pelaksana menguruskan pelaksanaan tugas dengan cekap, membolehkan penggunaan sumber sistem secara optimum.
Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Data Antara Dua Kelas SwingWorker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!