Tôi đang cố triển khai ứng dụng mẫu để kiểm tra các giao diện Callable
và ExecutorService
.Làm thế nào để dừng một cuộc gọi được gửi đến ExecutorService?
Trong ứng dụng của tôi, tôi đã tuyên bố:
ExecutorService exSvc = Executors.newSingleThreadExecutor();
Sau đó:
Future<Integer> test = exSvc.submit(
new Callable<Integer>() {
public Integer call() {
for(int i = 0; i < 1000; i++){
System.out.println(i);
}
return 1;
}
});
Bây giờ tôi đang cố gắng để ngăn chặn quá trình này trước khi nó kết thúc, tôi đang sử dụng exSvc.shutdownNow()
nhưng nó không công việc.
Để dừng duyên dáng cổ điển Thread
Tôi thường sử dụng một số loại biến số điều kiện. Cách tiếp cận phổ biến nào để theo dõi với ExecutorService
?
Có cách nào để dừng quy trình mà không sử dụng gián đoạn luồng không? – davioooh
Nó không rõ ràng chính xác những gì bạn muốn. 'shutdownNow()' đã sử dụng gián đoạn. – axtavt
Có, tôi đang yêu cầu làm thế nào để ngăn chặn nó ** mà không có ** thread gián đoạn. Sử dụng 'shutdownNow()' là cách duy nhất để dừng một luồng được gửi tới một 'ExecutorService'? – davioooh