জাভাতে সমকালীন হ্যাশ ম্যাপের সেরা প্রয়োগ কীভাবে করবেন?



এই নিবন্ধটি আপনাকে জাভাতে সাম্প্রতিক হ্যাশ ম্যাপ হিসাবে পরিচিত একটি ধারণার সাথে পরিচয় করিয়ে দেবে এবং এটি ব্যবহারিক বিক্ষোভের সাথে অনুসরণ করবে

এই নিবন্ধটি আপনাকে কনকরেন্ট হ্যাশ ম্যাপ ইন নামে পরিচিত একটি ধারণার সাথে পরিচয় করিয়ে দেবে এবং এটি ব্যবহারিক প্রদর্শনের সাথে অনুসরণ করুন ollow অনুসরণকারী পয়েন্টারগুলি এই নিবন্ধে আচ্ছাদিত হবে,

জাভাতে সাম্প্রতিক হ্যাশ ম্যাপে এই নিবন্ধটি নিয়ে চলছে





অভ্যন্তরীণভাবে সামঞ্জস্যহ্যাশম্যাপ কীভাবে কাজ করে?

জাভা 5 থেকে কনসেন্টারহ্যাশম্যাপটি হ্যাশ টেবিলের বিকল্প হিসাবে চালু করা হয়েছে। সিঙ্ক্রোনাইজড ম্যাপ () নামে ইউটিলিটি ক্লাসের পদ্ধতি ব্যবহার করে আমরা একটি সিঙ্ক্রোনাইজড মানচিত্রটিও পেতে পারি তবে এই পদ্ধতির একটি অপূর্ণতা রয়েছে - অর্থাত্ কেবলমাত্র একক থ্রেড এটিকে অ্যাক্সেস করতে পারে বলে অত্যন্ত দুর্বল অভিনয়। সুতরাং সমকালীন হ্যাশম্যাপ এই সমস্যাগুলিকে সম্বোধন করে।



সিটিতে একটি লিঙ্কযুক্ত তালিকা তৈরি করুন

জাভাতে সাম্প্রতিক হ্যাশ ম্যাপে এই নিবন্ধটি নিয়ে চলছে

অন্য মানচিত্র কেন?

যদিও ইতিমধ্যে আমাদের কাছে হ্যাশম্যাপ, হ্যাশ টেবিল রয়েছে তবে কনকনারিহ্যাশম্যাপের প্রয়োজন কী, কারণ এটি একই সাথে এটি আরও ভাল পারফরম্যান্স সরবরাহ করে এটি থ্রেড-সেফ।

জাভাতে সাম্প্রতিক হ্যাশ ম্যাপে এই নিবন্ধটি নিয়ে চলছে



এটা আলাদা কিভাবে?

এটি হ্যাশিংয়ের উপর ভিত্তি করে তবে এর লক করার কৌশল দ্বারা এর কার্যকারিতা উন্নতি হয়েছে। হ্যাশটবেল বা সিঙ্ক্রোনাইজড হ্যাশম্যাপের বিপরীতে এটি প্রতিটি পদ্ধতির জন্য একই লক প্রয়োগ করে না এটি প্রতিটি পদ্ধতির জন্য পৃথক লক ব্যবহার করে, এটি এই উদ্দেশ্যে পুনরায় প্রবেশকারী লক ব্যবহার করে। হ্যাশম্যাপের অনুরূপ, কনক্র্যান্টহ্যাশম্যাপে 16 টি বালতি অর্থাত্ সেগমেন্ট রয়েছে, 16 টিরও বেশি বালতি সহ কনক্রেনর হ্যাশম্যাপ তৈরি করতে এটির বিভিন্ন কনস্ট্রাক্টর রয়েছে।

বিস্তারিত আলোচনা করার আগে আসুন নীচে কয়েকটি ধারণাটি পর্যালোচনা করুন:

সাম্প্রতিক হ্যাশম্যাপ: এই মানচিত্রটি সামনের থ্রেড অ্যাক্সেসের অনুমতি দেয়। বিভাগটি বলা মানচিত্রের কেবলমাত্র অংশ অর্থাত অন্তর্নিহিত ডেটা স্ট্রাকচারটি মানচিত্রটি যুক্ত বা আপডেট করার সময় লক হয়ে যাচ্ছে। এটি লক না করে ডেটা পড়তে সমবর্তী থ্রেড অ্যাক্সেসের অনুমতি দেয়। পারফরম্যান্স উন্নয়নের জন্য এটি চালু করা হয়েছিল।

  • সংমেয়-স্তর: এটি এমন একটি সংখ্যা যা সমানভাবে আপডেট করার থ্রেডগুলির একটি আনুমানিক সংখ্যা।
  • লোড-ফ্যাক্টর: এটি একটি মান যা যা আকার পরিবর্তনকারী ফ্যাক্টরটি নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
  • প্রাথমিক ক্ষমতা: এটি এমন একটি সম্পত্তি যা সরবরাহিত আকারের সাথে মানচিত্র তৈরি করে।

আসুন চিত্রের নীচে দেখুন এবং কীভাবে সমবর্তী হ্যাশম্যাপ কাজ করে তা বোঝার চেষ্টা করি।

চিত্র- সমকালীন হাশম্যাপ- এডুরেকা

সুতরাং উপরের চিত্রটিতে, আমাদের কাছে 16 টি লক রয়েছে যা মানচিত্রের কেবলমাত্র একটি অংশকে লক করে রাখে যাতে অন্যান্য পদ্ধতিগুলি বিভিন্ন থ্রেড দ্বারা অ্যাক্সেস করা যায় ফলে কর্মক্ষমতা উন্নত হয়।

হ্যাশম্যাপের অনুরূপ, কনকন্টার হ্যাশম্যাপ একইভাবে কাজ করে এটি ডিফল্টরূপে ১ 16 টি বিভাগ এবং হ্যাশিং দ্বারা উপাদান সংরক্ষণ করে তাই উপাদানগুলির যদি একই হ্যাশ থাকে তবে লিঙ্কযুক্ত তালিকার সাহায্যে উপরের চিত্রটিতে প্রদর্শিত সেই একই বিভাগে সংরক্ষণ করা হয়।

জাভাতে সাম্প্রতিক হ্যাশ ম্যাপে এই নিবন্ধটি নিয়ে চলছে

সাম্প্রতিক হ্যাশম্যাপ এবং হ্যাশম্যাপের মধ্যে পার্থক্য

হ্যাশম্যাপ সংগ্রহের সাথে সম্পর্কিত, যখন কনকন্টার হ্যাশম্যাপটি সমকালীন সংগ্রহের অন্তর্গত তবে তাদের মধ্যে আরও অনেক পার্থক্য রয়েছে।

  • সমকালীন হ্যাশম্যাপ isথ্রেড-সেফ i.eসিঙ্ক্রোনাইজড তবে হ্যাশম্যাপটি অ-সিঙ্ক্রোনাইজড।
  • সাম্প্রতিক হ্যাশম্যাপটি পারফরম্যান্সে কম থাকে কারণ এটি সিঙ্ক্রোনাইজ করা হয় কারণ কখনও কখনও থ্রেডগুলি অপেক্ষা করতে হয় তবে হ্যাশম্যাপের কার্যকারিতা বেশি থাকে কারণ এটি অ-সিঙ্ক্রোনাইজড এবং কোনও থ্রেড একই সাথে অ্যাক্সেস করতে পারে।
  • যদি দুটি থ্রেড একই সাথে অবজেক্টের বিষয়বস্তুগুলিকে সংশোধন করতে বা যুক্ত করার চেষ্টা করা হয় তবে আমরা কনকন্টারমোডিফিকেশন এক্সেক্সেশনটি পেয়ে যাব। তবে কনকন্টারহ্যাশম্যাপের ক্ষেত্রে আমরা একই অপারেশন করার সময় কোনও ব্যতিক্রম পাব না।

  • ন্যাশনাল মানগুলি হ্যাশম্যাপে কী এবং মানগুলির জন্য অনুমোদিত তবে কনকন্টার হ্যাশম্যাপ কী এবং মানটির জন্য নাল মানকে মঞ্জুরি দেয় না এটি নাল মান যুক্ত করার চেষ্টা করেছিল আমরা ব্যতিক্রম পাব অর্থাৎ নালপয়েন্টারএক্সসেপশন।

  • হ্যাশম্যাপটি জেডিকে ১.২ এ এবং কনকন্টার হ্যাশম্যাপটি জেডিকে ২.৩ এ প্রবর্তিত হয়েছে।

আমরা আরও ভাল পারফরম্যান্সের জন্য আগে দেখেছি, এটি টেবিল বালতি হিসাবে নোডের একটি অ্যারে নিয়ে গঠিত যা টেবিল বিভাগ আগে ছিল জাভা 8

প্রথম সন্নিবেশ সম্পাদন করা হলে বালতিগুলি অলসভাবে শুরু করা হয়। প্রতিটি বালতি স্বাধীনভাবে লক করা যায় বালতিটির প্রথম নোড লক করেও পড়ার কাজগুলি ব্লক করে না।

তুলনা করা হ্যাশম্যাপ, সমকালীন হ্যাশম্যাপ অতিরিক্ত সরবরাহ করে একচেটিয়া ব্যবহারের জন্য আনুমানিক থ্রেডের সংখ্যা নিয়ন্ত্রণ করার যুক্তি।

নির্মাতারা:

  1. সাম্প্রতিকহ্যাশম্যাপ এম = নতুন কনকন্টারহ্যাশম্যাপ ()

    একটি নতুন শূন্য মানচিত্র 16 টির ডিফল্ট প্রাথমিক ক্ষমতা, 0.75 লোড ফ্যাক্টর এবং সমঝোতা স্তর 16 দিয়ে তৈরি করা হয়েছে।

  2. সাম্প্রতিকহ্যাশম্যাপ এম = নতুন কনকন্টারহ্যাশম্যাপ (প্রারম্ভিক ক্যাপাসিটি)
    একটি নতুন শূন্য মানচিত্র একটি নির্দিষ্ট প্রাথমিক ক্ষমতা, 0.75 লোড ফ্যাক্টর এবং সমঝোতা স্তর 16 দিয়ে তৈরি করা হয়েছে।

  3. সাম্প্রতিকহ্যাশম্যাপ এম = নতুন কনকোর্নিশ হ্যাশম্যাপ (প্রারম্ভিক ক্ষমতা, ফ্লোট লোডফ্যাক্টর)

    একটি নতুন শূন্য মানচিত্র একটি নির্দিষ্ট প্রাথমিক ক্ষমতা এবং সমঝোতা স্তর 16 এর সাথে লোড ফ্যাক্টর সহ তৈরি করা হয়েছে।

  4. সাম্প্রতিকহ্যাশম্যাপ এম = নতুন কনকোর্নিশ হ্যাশম্যাপ (প্রারম্ভিক ক্ষমতা, ফ্লোট লোড ফ্যাক্টর, ইন্ট কনক্যুরঞ্জি লেভেল)
    একটি নির্দিষ্ট প্রাথমিক ক্ষমতা, লোড ফ্যাক্টর এবং সম্মতি স্তর সহ একটি নতুন খালি মানচিত্র তৈরি করা হয়েছে।

  5. সাম্প্রতিকহ্যাশম্যাপ এম = নতুন সমবর্তী হ্যাশম্যাপ (মানচিত্র এম)
    সরবরাহকৃত মানচিত্র থেকে নতুন কনকন্টার হ্যাশম্যাপ তৈরি করে।

অন্য দুটি আর্গুমেন্ট: ইনিশিয়াল ক্যাপাসিটি এবং লোডফ্যাক্টর হ্যাশম্যাপের মতো বেশ কাজ করেছে।
একত্রে থাকা ম্যাপটি একাধিক-থ্রেড পরিবেশে কী / মান ক্রিয়াকলাপের সাথে সামঞ্জস্যপূর্ণ।

জাভাতে সাম্প্রতিক হ্যাশ ম্যাপে এই নিবন্ধটি নিয়ে চলছে

ক্ষতি

অবজেক্টগুলি পুনরুদ্ধার করার সময় কনক্রেনর হ্যাশম্যাপটি অবরুদ্ধ নয় এবং আপডেট ক্রিয়াকলাপগুলির সাথে ওভারল্যাপ হতে পারে, এইভাবে আরও ভাল পারফরম্যান্সের জন্য তারা কেবলমাত্র সম্প্রতি সম্পন্ন হওয়া আপডেট অপারেশনগুলি পুনরুদ্ধার করে।

আকার, আইসপিটি, এবং ভ্যালু সহ সামগ্রিক স্থিতির পদ্ধতির ফলাফলগুলি কেবল তখনই কার্যকর হয় যখন কোনও মানচিত্র অন্যান্য থ্রেডে একত্রে আপডেট না হয়।

যদি সমবর্তী আপডেটগুলি সঠিকভাবে নিয়ন্ত্রণ করা হয় তবে এই স্থিতির পদ্ধতিগুলি নির্ভরযোগ্য হতে পারে।

যদিও এই পদ্ধতিগুলি রিয়েল-টাইমে গ্যারান্টি দেয় না।

স্কয়ারে সাবস্ট্রিং কীভাবে ব্যবহার করবেন

ডিফল্ট সারণী ক্ষমতা 16 হয় তবে আমরা এটি একযোগী স্তর ব্যবহার করে এটি পরিবর্তন করতে পারি।

পাবলিক কনকন্টারহ্যাশম্যাপ (ইন্ট আর্নিশিয়াল ক্যাপাসিটি, ফ্লোট লোড ফ্যাক্টর, ইন্ট কনক্যুরঞ্জিভেলভ) {// ... (যদি প্রাথমিক পদ্ধতি

যদি কীগুলি কী অনুসারে বাছাই করা প্রয়োজন হয় আমরা কনকন্টারস্ক্লিপলিস্টম্যাপ ব্যবহার করতে পারি।

এখন উপরের প্রোগ্রামটি কার্যকর করার পরে আপনি জাভায় সমকালীন হ্যাশ মানচিত্রটি বুঝতে পারবেন। এইভাবে আমরা এই নিবন্ধটির শেষে এসেছি যদি আপনি আরও শিখতে চান তবে এটি দেখুন , একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা। এডুরেকার জাভা জে 2 ইই এবং এসওএ প্রশিক্ষণ এবং শংসাপত্রের কোর্সটি হিবারনেট ও স্প্রিংয়ের মতো বিভিন্ন জাভা ফ্রেমওয়ার্কের পাশাপাশি আপনাকে মূল এবং উন্নত জাভা উভয় ধারণার জন্য প্রশিক্ষণের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই নিবন্ধের মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।