Sekumpulan benang ialah koleksi utas yang telah dibuat sebelum ini digunakan untuk melaksanakan tugas serentak, yang mengoptimumkan penggunaan benang, meningkatkan prestasi dan menghalang keletihan sumber. Kaedah penggunaan khusus termasuk: menggunakan kelas Pelaksana untuk mencipta kumpulan benang. Hantar tugasan menggunakan kaedah submit(). Gunakan shutdown() untuk menutup kumpulan benang dan tunggu tugasan selesai. Gunakan shutdownNow() untuk segera menamatkan kumpulan benang dan mengganggu tugasan yang sedang dijalankan.
Panduan Penciptaan dan Pengurusan Kolam Benang Java
Pengenalan
Kolam benang ialah satu set benang pra-dicipta yang boleh digunakan untuk melaksanakan tugasan serentak. Ia menyediakan mekanisme untuk mengurus dan mengoptimumkan penggunaan benang, meningkatkan prestasi dan mencegah keletihan sumber.
Buat kumpulan benang
Gunakan kelas Pelaksana
untuk mencipta kumpulan benang: Executors
类创建线程池:
ExecutorService threadPool = Executors.newFixedThreadPool(numThreads);
其中 numThreads
是要创建的线程数。
管理线程池
一旦创建了线程池,您可以使用以下方法进行管理:
提交任务:使用 submit()
方法提交任务:
Future<Result> future = threadPool.submit(task);
关闭线程池:使用 shutdown()
方法关闭线程池,它会等待所有正在运行的任务完成:
threadPool.shutdown();
终止线程池:使用 shutdownNow()
方法立即终止线程池,它会尝试中断所有正在运行的任务:
threadPool.shutdownNow();
实战案例
以下代码演示了如何使用线程池处理图像处理任务:
ExecutorService threadPool = Executors.newFixedThreadPool(4); List<Image> images = ...; // 获取需处理的图像列表 for (Image image : images) { Future<Image> future = threadPool.submit(() -> processImage(image)); } // 等待所有图像处理完成 for (Future<Image> future : futures) { Image processedImage = future.get(); }
在该示例中,线程池最多同时处理 4 张图像。当提交任务时,submit()
方法会返回一个 Future
,该 Future
可用于获取任务完成后的结果。
注意事项
Future
对象,以防止资源泄漏。submit()
rrreeenumThreads
ialah bilangan utas untuk dibuat. shutdown()
untuk menutup kumpulan benang, yang akan menunggu semua tugasan berjalan selesai: 🎜 rrreee🎜shutdownNow()
untuk menamatkan kumpulan benang serta-merta, yang akan cuba mengganggu semua tugas yang sedang dijalankan: 🎜rrreee🎜🎜🎜🎜Kes praktikal 🎜🎜🎜Kod berikut menunjukkan cara menggunakan pemprosesan kumpulan benang tugas pemprosesan imej: 🎜rrreee🎜Dalam contoh ini, kumpulan benang memproses sehingga 4 imej serentak. Apabila menyerahkan tugasan, kaedah submit()
mengembalikan Future
yang boleh digunakan untuk mendapatkan keputusan selepas tugasan selesai. 🎜🎜🎜Nota🎜🎜Masa Depan
untuk mengelakkan kebocoran sumber. 🎜submit()
akan membuang pengecualian, pastikan anda menangkap pengecualian ini dan mengendalikannya dengan sewajarnya. 🎜🎜Atas ialah kandungan terperinci Bagaimanakah Java mencipta dan mengurus kumpulan benang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!