Kolam benang ialah sekumpulan benang boleh guna semula pra-segera yang tersedia untuk melaksanakan tugas. Apabila tugasan diserahkan, tugasan itu diberikan kepada benang terbiar dalam kolam. Jika semua rangkaian sibuk, tugasan menunggu dalam baris gilir sehingga satu utas tersedia.
Kolam benang menawarkan beberapa kelebihan:
Apabila anda menyerahkan tugasan ke kumpulan benang, langkah berikut berlaku:
Kumpulan benang amat berguna dalam senario di mana anda perlu mengurus sejumlah besar tugas jangka pendek, seperti mengendalikan permintaan dalam pelayan web atau memproses sekumpulan kerja.
Java menyediakan beberapa pelaksanaan kumpulan benang terbina dalam dalam pakej java.util.concurrent, dengan yang paling biasa digunakan ialah ExecutorService. Mari kita terokai cara membuat dan menggunakan kumpulan benang dalam Java.
Untuk mencipta kumpulan benang dalam Java, anda boleh menggunakan kelas Pelaksana, yang menyediakan pelbagai kaedah untuk mencipta kumpulan benang yang berbeza.
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolExample { public static void main(String[] args) { // Create a fixed thread pool with 5 threads ExecutorService executorService = Executors.newFixedThreadPool(5); for (int i = 0; i < 10; i++) { Runnable task = new Task(i); executorService.execute(task); } executorService.shutdown(); } } class Task implements Runnable { private int taskId; public Task(int taskId) { this.taskId = taskId; } @Override public void run() { System.out.println("Task " + taskId + " is being executed by " + Thread.currentThread().getName()); } }
Java menyediakan beberapa jenis kumpulan benang, setiap satu direka untuk senario berbeza:
Kolam Benang Tetap : Mencipta bilangan urutan tetap. Jika semua rangkaian sibuk, tugas akan beratur.
ExecutorService fixedPool = Executors.newFixedThreadPool(10);
Kolam Benang Cache : Mencipta urutan baharu mengikut keperluan tetapi menggunakan semula urutan yang dibina sebelum ini apabila tersedia. Sesuai untuk melaksanakan banyak tugas jangka pendek.
ExecutorService cachedPool = Executors.newCachedThreadPool();
Pelaksana Benang Tunggal: Mencipta urutan pekerja tunggal untuk melaksanakan tugas secara berurutan.
ExecutorService singlePool = Executors.newSingleThreadExecutor();
Kolam Benang Berjadual: Mencipta kumpulan benang yang boleh menjadualkan arahan untuk dijalankan selepas kelewatan tertentu atau secara berkala.
ScheduledExecutorService scheduledPool = Executors.newScheduledThreadPool(5);
Dalam contoh yang disediakan, kumpulan benang tetap dengan 5 benang dibuat. Kami menyerahkan 10 tugasan kepada kolam. Kumpulan memberikan tugasan ini kepada urutan yang tersedia. Jika semua rangkaian sibuk, tugasan menunggu dalam baris gilir.
Keluaran Jangkaan:
Task 0 is being executed by pool-1-thread-1 Task 1 is being executed by pool-1-thread-2 Task 2 is being executed by pool-1-thread-3 Task 3 is being executed by pool-1-thread-4 Task 4 is being executed by pool-1-thread-5 Task 5 is being executed by pool-1-thread-1 Task 6 is being executed by pool-1-thread-2 Task 7 is being executed by pool-1-thread-3 Task 8 is being executed by pool-1-thread-4 Task 9 is being executed by pool-1-thread-5
Kumpulan benang di Java menawarkan cara yang mantap untuk mengurus dan melaksanakan tugas dengan cekap. Dengan menggunakan semula set benang tetap, ia mengurangkan overhed dan meningkatkan prestasi aplikasi berbilang benang. Sama ada anda memproses permintaan web, menjalankan kerja latar belakang atau melaksanakan pengiraan selari, kumpulan benang ialah alat penting dalam kit alat serentak Java anda.
Ada soalan? Letakkan mereka dalam komen di bawah!
Baca siaran lebih lanjut di : Kolam Benang Java: Cara Mengurus Benang dengan Cekap
Atas ialah kandungan terperinci Kolam Benang Java: Cara Mengurus Benang dengan Cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!