একক-প্রযোজক / একক-গ্রাহক কেসের জন্য লক-ফ্রি সারিগুলি প্রয়োগ করা যেতে পারে এবং প্রায়শই আপনি একাধিক উত্পাদক বা একাধিক-গ্রাহক সারি সংখ্যা হ্রাস করতে আপনার সফ্টওয়্যারটি আর্কিটেক্ট করতে পারেন।
একটি লক-মুক্ত কাতারটি এমনভাবে তৈরি করা যেতে পারে: যোগাযোগ করার জন্য উপাদানগুলির একটি অ্যারে এবং দুটি পূর্ণসংখ্যাও বরাদ্দ করুন, তাদের হেড এবং টেইল কল করুন। হেড হ'ল অ্যারেতে একটি সূচক, যেখানে পরবর্তী আইটেম যুক্ত করা হবে। লেজটি অ্যারেতে একটি সূচক, যেখানে পরবর্তী আইটেমটি সরানোর জন্য উপলব্ধ। প্রযোজক টাস্কটি কোনও আইটেম যুক্ত করার জায়গা আছে কিনা তা নির্ধারণ করতে এইচ এবং টি পড়ে; এইচ সূচকটিতে আইটেমটি লিখে, তারপরে এইচ আপডেট করে গ্রাহক কাজগুলি এইচ এবং টি পড়ে ডেটা উপলব্ধ কিনা তা নির্ধারণ করতে, সূচক টি থেকে ডেটা পড়ে, এবং টি আপডেট করে। মূলত এটি দুটি কাজ দ্বারা অ্যাক্সেস করা একটি রিং বাফার এবং ক্রমের ক্রম (সন্নিবেশ করান, তারপরে এইচ টি আপডেট করুন; অপসারণ করুন, তারপরে টি আপডেট করুন) নিশ্চিত করে যে ডেটা দুর্নীতি না ঘটে occur
আপনার যদি একাধিক প্রযোজক এবং একক গ্রাহক বা একক উত্পাদক এবং একাধিক গ্রাহকের সাথে পরিস্থিতি থাকে তবে কার্যকরভাবে আপনার কোনওরকমের একটি রিসোর্স সীমাবদ্ধতা রয়েছে এবং এর জন্য সিঙ্ক্রোনাইজেশন ব্যবহার করা ছাড়া আর কিছুই নেই, কারণ পারফরম্যান্স সীমাবদ্ধতার সম্ভাবনা বেশি is লকিং প্রক্রিয়া সহ কোনও ওএস ওভারহেডের চেয়ে একাকী নির্মাতা / ভোক্তা হন।
তবে আপনার যদি একাধিক প্রযোজক এবং ভোক্তা থাকে তবে আপনি আরও সমন্বিত যোগাযোগ ব্যবস্থা অর্জন করতে পারবেন না তা দেখার জন্য (ডিজাইন-স্পেসে) সময় ব্যয় করা উপযুক্ত; এর মতো ক্ষেত্রে, একক কিউর মাধ্যমে সমস্ত কিছু সিরিয়ালাইজ করা নিশ্চিতভাবেই সারির দক্ষতাটিকে পারফরম্যান্সের কেন্দ্রীয় নির্ধারক করে তোলে।