Dalam konteks ini, kami berminat dengan pelaksanaan ExecutorService yang mampu mengganggu tugasan yang melebihi tamat masa yang telah ditetapkan.
Salah satu pelaksanaan sedemikian ialah TimeoutThreadPoolExecutor, yang menyediakan mekanisme untuk menentukan tempoh tamat masa untuk tugasan yang diserahkan.
import java.util.List;
import java.util.concurrent.*;
kelas awam TimeoutThreadPoolExecutor melanjutkan ThreadPoolExecutor {
private final long timeout; private final TimeUnit timeoutUnit; // ... (rest of the implementation)
}
>Untuk menggunakan perkhidmatan pelaksana ini, cuma buat satu contoh, menyatakan tamat masa yang diingini:
TimeoutThreadPoolExecutor executor = new TimeoutThreadPoolExecutor(..., timeout, TimeUnit.MILLISECONDS);
Kemudian, serahkan tugas anda kepada pelaksana seperti biasa. Tugasan yang melebihi tamat masa yang ditetapkan akan terganggu.
Sebagai alternatif, anda boleh menggunakan ScheduledExecutorService:
ScheduledExecutorService executor = Executors.newScheduledThreadPool(2); Future<?> handler = executor.submit(new Callable() { /* ... */ }); executor.schedule(() -> handler.cancel(true), 10000, TimeUnit.MILLISECONDS);
Strategi ini memastikan tugasan terganggu selepas 10 saat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Perkhidmatan Pelaksana Yang Mengganggu Tugas Selepas Tamat Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!