CodeGym /Java Course /মডিউল 3 /তালা: সম্পদের অ্যাক্সেস লক করুন

তালা: সম্পদের অ্যাক্সেস লক করুন

মডিউল 3
লেভেল 19 , পাঠ 7
বিদ্যমান

ReentrantLock

শর্ত - লকগুলিতে শর্ত প্রয়োগ করা আপনাকে স্ট্রিমগুলিতে অ্যাক্সেস পরিচালনার উপর নিয়ন্ত্রণ অর্জন করতে দেয়। লক কন্ডিশন হলjava.util.concurrent.locksথেকে কন্ডিশন ইন্টারফেসের একটি অবজেক্ট । কন্ডিশন অবজেক্ট ব্যবহার করা অনেক উপায়ে অবজেক্ট ক্লাসেরwait/notify/notifyAllব্যবহার করার মতই, যেগুলো পূর্ববর্তী কোনো একটিতে আলোচনা করা হয়েছিল।

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

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

ReentrantLock ক্লাস , লক ইন্টারফেসের পদ্ধতি ছাড়াও , একটি ফ্যাক্টরি পদ্ধতি newCondition() আছে । এই পদ্ধতি একটি বস্তু ফেরতঅবস্থা, যা আপনাকে প্রদত্ত বস্তুর অপেক্ষা সেটে বর্তমান থ্রেড যোগ করতে দেয়অবস্থা.

private final Lock R_LOCK = ReentrantLock();
R_LOCK.lock();
try {
   //some action happens here
} finally {
   R_LOCK.unlock();
}

ReadWriteLock হল রিড/রাইট লক তৈরি করার জন্য একটি ইন্টারফেস। লকগুলি অত্যন্ত কার্যকর যখন একটি সিস্টেমে প্রচুর পড়া এবং অল্প কিছু লেখা থাকে।

ReentrantReadWriteLock - মাল্টি-থ্রেডেড পরিষেবা এবং ক্যাশে ব্যবহৃত, সিঙ্ক্রোনাইজড ব্লকের তুলনায় একটি চমৎকার কর্মক্ষমতা বৃদ্ধি করে। আসলে, ক্লাসটি 2টি পারস্পরিক একচেটিয়া মোডে কাজ করে: অনেক পাঠক সমান্তরালভাবে ডেটা পড়ে এবং যখন শুধুমাত্র 1 জন লেখক ডেটা লেখেন।

ReentrantReadWriteLock.ReadLock - পাঠকদের জন্য রিড লক, readWriteLock.readLock() এর মাধ্যমে প্রাপ্ত।

ReentrantReadWriteLock.WriteLock - লেখকদের জন্য লক লিখুন, readWriteLock.writeLock() এর মাধ্যমে প্রাপ্ত।

সিঙ্ক্রোনাইজার

AbstractOwnableSynchronizer হল বেস ক্লাস সিঙ্ক্রোনাইজেশন মেকানিজম তৈরির জন্য দায়ী। আপনার ডেটাতে কাজ করতে পারে এমন একটি এক্সক্লুসিভ স্ট্রিম মনে রাখতে এবং পড়ার জন্য একটি গেটার/সেটার রয়েছে।

AbstractQueuedSynchronizer হল FutureTask, CountDownLatch, Semaphore, ReentrantLock, ReentrantReadWriteLock-এ সিঙ্ক্রোনাইজেশন মেকানিজমের জন্য বেস ক্লাস। এটি নতুন সিঙ্ক্রোনাইজেশন প্রক্রিয়া তৈরি করার সময়ও ব্যবহৃত হয় যা একটি একক এবং পারমাণবিক int মানের উপর নির্ভর করে।

AbstractQueuedLongSynchronizer হল AbstractQueuedSynchronizer এর একটি রূপযা পারমাণবিক দীর্ঘ মানকে সমর্থন করে।

মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION