অনিরাপদ থ্রেড টার্মিনেশন থেকে কোঅপারেটিভ ক্যান্সেলেশন
Thread.stop() এবং ad hoc শেয়ার্ড ফ্ল্যাগগুলোকে ইন্টারাপশন-অ্যাওয়ার টাস্ক ক্যান্সেলেশন দিয়ে প্রতিস্থাপন করুন।
Thread worker = new Thread(this::runTask); worker.start(); // May stop the thread while shared state is inconsistent. worker.stop();
Future<?> worker = executor.submit(this::runTask); // Requests interruption; the task must cooperate. worker.cancel(true);
ইনভ্যারিয়েন্ট সংরক্ষণ করে
টাস্কগুলো শুধুমাত্র ক্যান্সেলেশনের জন্য ডিজাইন করা কোড পাথে থামে।
স্ট্যান্ডার্ড কন্ট্রোল
Future এক্সিকিউশন, কমপ্লিশন এবং ক্যান্সেলেশন একসাথে উপস্থাপন করে।
কম্পোজেবল
ইন্টারাপশন ব্লকিং কিউ, লক, executor এবং ভার্চুয়াল থ্রেডের সাথে কাজ করে।
Future এবং ExecutorService JDK 5 (সেপ্টেম্বর ২০০৪) থেকে উপলব্ধ।
Thread.stop() মনিটর ধরে রাখা বা শেয়ার্ড স্টেট আপডেট করার সময় কোড টার্মিনেট করতে পারে, যার ফলে অবজেক্টগুলো ক্ষতিগ্রস্ত থেকে যেতে পারে। আধুনিক ক্যান্সেলেশন কোঅপারেটিভ। ইন্টারাপশন দিয়ে Future ক্যান্সেল করুন, যেখানে সম্ভব InterruptedException প্রোপাগেট করুন, প্রোপাগেট করা সম্ভব না হলে ইন্টারাপ্ট স্ট্যাটাস পুনরুদ্ধার করুন, এবং টাস্কটিকে নিরাপদ ক্যান্সেলেশন পয়েন্টে পৌঁছানোর জন্য ডিজাইন করুন।