Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh menggunakan kumpulan benang atau menjalankan tugas pada utas semasa dengan lancar dalam Rangka Kerja Pelaksana Java?

Bagaimanakah saya boleh menggunakan kumpulan benang atau menjalankan tugas pada utas semasa dengan lancar dalam Rangka Kerja Pelaksana Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 11:30:02414semak imbas

How can I use a thread pool or run tasks on the current thread seamlessly in Java's Executor Framework?

Menggunakan Kolam Benang dengan Benang Semasa dalam Rangka Kerja Pelaksana Java

Seseorang mungkin ingin mengkonfigurasi ExecutorService dalam Java untuk sama ada menggunakan kumpulan benang atau menjalankan tugas pada utas semasa dengan lancar. Penyelesaian mudah ialah menggunakan CurrentThreadExecutor, pelaksana yang tidak boleh dikonfigurasikan yang melaksanakan tugas serta-merta pada urutan semasa.

Untuk melaksanakan pendekatan ini:

<code class="java">import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

//...

ExecutorService es = threads == 0 ? new CurrentThreadExecutor() : Executors.newThreadPoolExecutor(threads);

// es.execute / es.submit / new ExecutorCompletionService(es) etc</code>

Dalam Java 8, penyelesaian alternatif ialah menggunakan ungkapan lambda sebagai pelaksana:

<code class="java">Executor e = Runnable::run;</code>

Pelaksana lambda ini melaksanakan tugas pada urutan semasa, menghapuskan keperluan untuk konfigurasi pelaksana eksplisit.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan kumpulan benang atau menjalankan tugas pada utas semasa dengan lancar dalam Rangka Kerja Pelaksana Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn