Tôi có một nhiệm vụ dài chạy, một cái gì đó như:Java chạy dài nhiệm vụ Chủ đề gián đoạn vs hủy cờ
public void myCancellableTask() {
while (someCondition) {
checkIfCancelRequested();
doSomeWork();
}
}
Nhiệm vụ có thể bị hủy bỏ (một hủy được yêu cầu và checkIfCancelRequested() kiểm tra hủy bỏ cờ). Nói chung khi tôi viết các vòng hủy như thế này, tôi sử dụng một lá cờ để chỉ ra rằng một yêu cầu hủy đã được yêu cầu. Nhưng, tôi biết tôi cũng có thể sử dụng Thread.interrupt và kiểm tra xem các thread đã bị gián đoạn. Tôi không chắc đó sẽ là cách tiếp cận ưa thích và tại sao, suy nghĩ?
cảm ơn,
Jeff
Nội dung thú vị tại đây. Đó là tất cả các quá phổ biến để xem nuốt của gián đoạn hoặc chỉ cần đăng nhập và tiếp tục mà không cần đặt lại cờ ngắt. Tôi nghĩ mọi người cảm thấy thất vọng rằng đó là một ngoại lệ được kiểm tra mà họ không biết phải làm gì, vì vậy họ không làm gì cả. –