Concurrency উন্নত

অনিরাপদ থ্রেড টার্মিনেশন থেকে কোঅপারেটিভ ক্যান্সেলেশন

Thread.stop() এবং ad hoc শেয়ার্ড ফ্ল্যাগগুলোকে ইন্টারাপশন-অ্যাওয়ার টাস্ক ক্যান্সেলেশন দিয়ে প্রতিস্থাপন করুন।

✕ Forced thread termination
Thread worker = new Thread(this::runTask);
worker.start();

// May stop the thread while shared state is inconsistent.
worker.stop();
✓ Future cancellation
Future<?> worker = executor.submit(this::runTask);

// Requests interruption; the task must cooperate.
worker.cancel(true);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🛡

ইনভ্যারিয়েন্ট সংরক্ষণ করে

টাস্কগুলো শুধুমাত্র ক্যান্সেলেশনের জন্য ডিজাইন করা কোড পাথে থামে।

🧩

স্ট্যান্ডার্ড কন্ট্রোল

Future এক্সিকিউশন, কমপ্লিশন এবং ক্যান্সেলেশন একসাথে উপস্থাপন করে।

🔗

কম্পোজেবল

ইন্টারাপশন ব্লকিং কিউ, লক, executor এবং ভার্চুয়াল থ্রেডের সাথে কাজ করে।

পুরনো পদ্ধতি
Thread.stop()
আধুনিক পদ্ধতি
Future.cancel(true)
JDK থেকে
5
কঠিনতা
উন্নত
অনিরাপদ থ্রেড টার্মিনেশন থেকে কোঅপারেটিভ ক্যান্সেলেশন
উপলব্ধ

Future এবং ExecutorService JDK 5 (সেপ্টেম্বর ২০০৪) থেকে উপলব্ধ।

Thread.stop() মনিটর ধরে রাখা বা শেয়ার্ড স্টেট আপডেট করার সময় কোড টার্মিনেট করতে পারে, যার ফলে অবজেক্টগুলো ক্ষতিগ্রস্ত থেকে যেতে পারে। আধুনিক ক্যান্সেলেশন কোঅপারেটিভ। ইন্টারাপশন দিয়ে Future ক্যান্সেল করুন, যেখানে সম্ভব InterruptedException প্রোপাগেট করুন, প্রোপাগেট করা সম্ভব না হলে ইন্টারাপ্ট স্ট্যাটাস পুনরুদ্ধার করুন, এবং টাস্কটিকে নিরাপদ ক্যান্সেলেশন পয়েন্টে পৌঁছানোর জন্য ডিজাইন করুন।