रद्द मैं एक लंबे चल रहा काम, जैसे कुछ है:जावा लंबी चलने कार्य थ्रेड बीच में बनाम झंडा
public void myCancellableTask() {
while (someCondition) {
checkIfCancelRequested();
doSomeWork();
}
}
कार्य रद्द किया जा सकता है (एक रद्द करने का अनुरोध किया जाता है और checkIfCancelRequested() झंडा रद्द की जाँच करता है)। आम तौर पर जब मैं इस तरह से रद्द करने योग्य लूप लिखता हूं, तो मैं यह इंगित करने के लिए एक ध्वज का उपयोग करता हूं कि रद्द करने का अनुरोध किया गया है। लेकिन, मुझे पता है कि मैं Thread.interrupt का भी उपयोग कर सकता हूं और जांच सकता हूं कि थ्रेड बाधित हो गया है या नहीं। मुझे यकीन नहीं है कि कौन सा पसंदीदा दृष्टिकोण होगा और क्यों, विचार?
धन्यवाद,
जेफ
अच्छी चीजें यहाँ। बाधा के निगलने या केवल अवरोध झंडा को रीसेट किए बिना लॉगिंग और जारी रखने के लिए यह बहुत आम है। मुझे लगता है कि लोग निराश हो जाते हैं कि यह एक चेक अपवाद है जिसे वे नहीं जानते कि क्या करना है, इसलिए वे कुछ भी नहीं करते हैं। –