Vector
প্রতিটি স্বতন্ত্র অপারেশনে সিঙ্ক্রোনাইজ করে। এটি আপনি যা করতে চান তা প্রায় কখনও নয়।
সাধারণত আপনি ক্রিয়াকলাপের পুরো ক্রমটি সিঙ্ক্রোনাইজ করতে চান । স্বতন্ত্র ক্রিয়াকলাপগুলি সমন্বয় করা উভয়ই কম নিরাপদ ( Vector
উদাহরণস্বরূপ, যদি আপনি একই সময়ে অন্য কোনও ব্যক্তিকে সংগ্রহ পরিবর্তন করতে না পারাতে আপনাকে একটি লক বের করতে হবে, যা ConcurrentModificationException
পুনরাবৃত্ত থ্রেডের কারণ হয়ে দাঁড়াবে ) তবে ধীরে ধীরে ( একবার যখন যথেষ্ট হবে তখন কেন বারবার একটি লক বের করবেন)?
অবশ্যই, এটির প্রয়োজন নেই এমনকী এটির লকিংয়ের ওভারহেডও রয়েছে।
মূলত, বেশিরভাগ পরিস্থিতিতে এটি সুসংগতকরণের জন্য একটি ত্রুটিযুক্ত পদ্ধতি। মিঃ ব্রায়ান হেন্ক যেমন উল্লেখ করেছেন, আপনি কলগুলি ব্যবহার করে একটি সংগ্রহকে সাজিয়ে তুলতে পারেন Collections.synchronizedList
- Vector
"" প্রতিটি ক্রিয়াকলাপটি সিঙ্ক্রোনাইজ করুন "বিটের সাথে" পুনরায় আকারিত অ্যারে "সংগ্রহের বাস্তবায়ন উভয়ের সংমিশ্রণের বিষয়টি দুর্বল ডিজাইনের আরেকটি উদাহরণ; সজ্জা পদ্ধতির উদ্বেগের পরিষ্কার বিচ্ছিন্নতা দেয়।
Stack
সমতুল্য হিসাবে - আমি Deque
/ ArrayDeque
দিয়ে শুরু দেখতে চাই ।