Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mencipta Perkhidmatan Pelaksana Yang Mengganggu Tugas Selepas Tamat Masa?

Bagaimanakah Saya Boleh Mencipta Perkhidmatan Pelaksana Yang Mengganggu Tugas Selepas Tamat Masa?

Patricia Arquette
Lepaskan: 2024-11-28 04:25:13
asal
392 orang telah melayarinya

How Can I Create an ExecutorService That Interrupts Tasks After a Timeout?

Perkhidmatan Pelaksana Tamat Masa

Ikhtisar

Dalam konteks ini, kami berminat dengan pelaksanaan ExecutorService yang mampu mengganggu tugasan yang melebihi tamat masa yang telah ditetapkan.

Sedia ada Pelaksanaan

Salah satu pelaksanaan sedemikian ialah TimeoutThreadPoolExecutor, yang menyediakan mekanisme untuk menentukan tempoh tamat masa untuk tugasan yang diserahkan.

Butiran Pelaksanaan


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)
Salin selepas log masuk

}

Penggunaan

>Untuk menggunakan perkhidmatan pelaksana ini, cuma buat satu contoh, menyatakan tamat masa yang diingini:

TimeoutThreadPoolExecutor executor = new TimeoutThreadPoolExecutor(..., timeout, TimeUnit.MILLISECONDS);
Salin selepas log masuk

Kemudian, serahkan tugas anda kepada pelaksana seperti biasa. Tugasan yang melebihi tamat masa yang ditetapkan akan terganggu.

Pendekatan Alternatif

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan