CopyOnWriteArrayList
একটি প্রদত্ত সংগ্রহে যোগ , সেট , অপসারণের ক্রিয়াকলাপগুলি অভ্যন্তরীণ অ্যারের একটি নতুন অনুলিপি তৈরি করে। এটি নিশ্চিত করে যে আমরা ConcurrentModificationException ধরি না ।
শুধু মনে রাখবেন যে একটি অ্যারে অনুলিপি করার সময়, অ-থ্রেড-নিরাপদ উপাদানগুলির ক্ষেত্রগুলিতে অ্যাক্সেস সহ শুধুমাত্র বস্তুর উল্লেখগুলি অনুলিপি করা হয়। ন্যূনতম সংখ্যক লেখার ক্রিয়াকলাপের ক্ষেত্রে এই জাতীয় সংগ্রহগুলি সর্বোত্তমভাবে ব্যবহৃত হয়।
CopyOnWriteArrayList<E> হল ArrayList-এর একটি থ্রেড-নিরাপদ অ্যানালগ, CopyOnWrite অ্যালগরিদমের ভিত্তিতে প্রয়োগ করা হয়েছে। অতিরিক্ত পদ্ধতি এবং কনস্ট্রাক্টর নীচে বর্ণিত হয়েছে:
CopyOnWriteArrayList(E[] toCopyIn) | একটি কনস্ট্রাক্টর যা ইনপুট হিসাবে একটি অ্যারে নেয়। |
int indexOf(E e, int সূচক) | প্রদত্ত সূচী থেকে শুরু করে পাওয়া প্রথম উপাদানটির সূচী প্রদান করে। |
int lastIndexOf(E e, int সূচক) | প্রদত্ত সূচী থেকে শুরু করে বিপরীত অনুসন্ধানে পাওয়া প্রথম উপাদানটির সূচী প্রদান করে। |
বুলিয়ান addIfAbsent(E e) | সংগ্রহে না থাকলে একটি উপাদান যোগ করুন। উপাদান তুলনা করার জন্য সমান পদ্ধতি ব্যবহার করা হয় । |
int addAllAbsent(সংগ্রহ<? প্রসারিত E> c) | উপাদান যোগ করুন যদি তারা সংগ্রহে না থাকে। যোগ করা উপাদানের সংখ্যা প্রদান করে। |
ConcurrentMap ইন্টারফেস
মাল্টিথ্রেডিং এবং স্কেলেবিলিটির জন্য সমর্থন সহ হ্যাশম্যাপ এবং ট্রিম্যাপের উন্নত বাস্তবায়ন ।
ConcurrentMap<K, V> হল একটি ইন্টারফেস যা মানচিত্রকে অতিরিক্ত পারমাণবিক ক্রিয়াকলাপের সাথে প্রসারিত করে।
V putIfAbsent(K কী, V মান) | চাবি সংগ্রহে না থাকলে শুধুমাত্র একটি নতুন কী-মান জোড়া যোগ করে। প্রদত্ত কীটির পূর্ববর্তী মান প্রদান করে। |
বুলিয়ান রিমুভ (বস্তু কী, বস্তুর মান) | প্রদত্ত কীটি মানচিত্রে প্রদত্ত মানের সাথে মেলে তবেই কী-মান জোড়া সরিয়ে দেয়৷ যদি উপাদান সফলভাবে সরানো হয় তাহলে সত্য দেখায়। |
বুলিয়ান প্রতিস্থাপন (কে কী, ভি পুরাতন মান, ভি নতুন মান) | পুরানো মানটি মানচিত্রে প্রদত্ত মানের সাথে মেলে তবেই কী দ্বারা নতুন মানটিকে প্রতিস্থাপন করে৷ মানটি একটি নতুন দিয়ে প্রতিস্থাপিত হলে সত্য দেখায়। |
V প্রতিস্থাপন (K কী, V মান) | একটি পুরানো মানকে কী দ্বারা একটি নতুন দিয়ে প্রতিস্থাপন করে শুধুমাত্র যদি কী কোনো মানের সাথে যুক্ত থাকে। প্রদত্ত কীটির পূর্ববর্তী মান প্রদান করে। |
ConcurrentHashMap<K, V> - এখানে ডেটা সেগমেন্ট আকারে উপস্থাপন করা হয়েছে, যা কী হ্যাশগুলিতে বিভক্ত। ফলস্বরূপ, যদি আপনার অ্যাক্সেসের প্রয়োজন হয়, তাহলে সেগমেন্টটি লক করা হয়, বস্তুটি নয়। Iterators ConcurrentModificationException নিক্ষেপ করে নাএবং নির্দিষ্ট সময়ের জন্য ডেটা উপস্থাপন করে।
ConcurrentHashMap এর বাস্তবায়ন
ConcurrentHashMap<K, V> - এখানে ডাটা সেগমেন্ট আকারে উপস্থাপন করা হয়েছে, কী হ্যাশ দ্বারা বিভক্ত। ফলস্বরূপ, ডেটা অ্যাক্সেস সেগমেন্ট দ্বারা লক করা হয়, একটি বস্তু দ্বারা নয়। উপরন্তু, পুনরাবৃত্তিকারীরা নির্দিষ্ট সময়ের জন্য ডেটা উপস্থাপন করে এবং ConcurrentModificationException নিক্ষেপ করে না ।
ConcurrentNavigableMap<K,V> - NavigableMap ইন্টারফেস প্রসারিত করে এবং একটি ConcurrentNavigableMap প্রদান করে । সমস্ত পুনরাবৃত্তিকারী ব্যবহার করা নিরাপদ এবং ConcurrentModificationException নিক্ষেপ করবেন না ।
ConcurrentSkipListMap<K, V> হল মাল্টিথ্রেডিংয়ের জন্য ট্রিম্যাপের একটি অ্যানালগডেটা কী দ্বারা বাছাই করা হয় এবং ConsKey,get,put,remove,এবং অন্যান্য অনুরূপ ক্রিয়াকলাপগুলির জন্য গড় লগ(N) কর্মক্ষমতা নিশ্চিত করা হয়৷
ConcurrentSkipListSet<E> হল ConcurrentSkipListMap- এর উপর ভিত্তি করে সেট ইন্টারফেসের একটি বাস্তবায়ন।
GO TO FULL VERSION