Concurrency প্রাথমিক

স্ব-ডকুমেন্টিং (self-documenting) টাইম ভ্যালুর জন্য Duration ব্যবহার করুন।

✕ Java 8
// What unit is 5000? ms? us?
Thread.sleep(5000);

// 2.5 seconds: math required
Thread.sleep(2500);
✓ Java 19+
Thread.sleep(
    Duration.ofSeconds(5)
);
Thread.sleep(
    Duration.ofMillis(2500)
);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
📖

স্ব-ডকুমেন্টিং (Self-documenting)

Duration.ofSeconds(5) মেথডটি দ্ব্যর্থহীন (unambiguous)।

🛡️

ইউনিট-সেফ (Unit-safe)

ভুলবশত মাইক্রোসেকেন্ডকে মিলিসেকেন্ড হিসেবে পাস করার ঝুঁকি থাকে না।

🧩

কম্পোজেবল (Composable)

Duration ম্যাথ ব্যবহার করা যায়, যেমন plus(), multipliedBy() ইত্যাদি।

পুরনো পদ্ধতি
মিলিসেকেন্ড
আধুনিক পদ্ধতি
Duration
JDK থেকে
19
কঠিনতা
প্রাথমিক
Duration সহ Thread.sleep
উপলব্ধ

JDK 19 (সেপ্টেম্বর 2022) থেকে ব্যাপকভাবে উপলব্ধ

Thread.sleep(Duration) মেথডটি টাইমের ইউনিটকে সুস্পষ্ট করে তোলে। এর ফলে 5000 বলতে মিলিসেকেন্ড নাকি মাইক্রোসেকেন্ড বোঝানো হয়েছে, তা নিয়ে কোনো অনুমান করার প্রয়োজন হয় না। এটি Duration.ofSeconds, ofMillis, ofMinutes ইত্যাদির সাথে কাজ করে।