সমস্ত থ্রেড হ'ল ইন্টারলিভ অপারেশন যাতে প্রক্রিয়াটির অংশগুলি সময়মতো ওভারল্যাপ হয়ে আসে। একাধিক থ্রেড সহ একটি একক কোর মেশিনটি কেবল চারপাশে লাফ দেয়: এটি একটি থ্রেড থেকে কোডের ছোট বিটগুলি কার্যকর করে, তারপরে অন্য থ্রেডে স্যুইচ করে। একটি সাধারণ শিডিয়ুলার সিদ্ধান্ত নেয় যে কোন থ্রেডটি সর্বোচ্চ অগ্রাধিকার এবং প্রকৃতপক্ষে মূলটিতে এটি কার্যকর করা হয়।
একটি একক-কোর কম্পিউটারে আসলে "একই সাথে" কিছুই হয় না । এটি সবই কেবল আন্তঃবাহিতভাবে কার্যকর করা হয়েছে।
ইন্টারলেভিং অর্জনের অনেকগুলি উপায় রয়েছে। অনেক।
ধরা যাক আপনার একটি সহজ দ্বি-থ্রেড প্রক্রিয়া রয়েছে যা একটি সাধারণ লক ব্যবহার করে যাতে উভয় থ্রেড একটি সাধারণ ভেরিয়েবলে লিখতে পারে। আপনার কাছে কোডের ছয়টি ব্লক রয়েছে।
- টি 1-এর আগে লক
- টি 1-সহ লক
- টি 1-পরে লক
- টি 2-এর আগে লক
- টি 2 সহ লক
- টি 2-পরে লক
[এটি লুপে থাকতে পারে বা আরও লক বা যা কিছু থাকতে পারে। এটি কেবল দীর্ঘতর হবে, আরও জটিল নয়]]
টি 1-এর পদক্ষেপগুলি অবশ্যই চলতে হবে (টি 1-এর আগে, টি 1-সহ, টি 1-পরে) এবং টি 2-র পদক্ষেপগুলি অবশ্যই যথাযথভাবে চলতে হবে (টি 2-এর আগে, টি 2-সহ, টি 2-পরে)।
"ইন-অর্ডার" সীমাবদ্ধতা ব্যতীত এগুলি যে কোনও উপায়ে ইন্টারলিভ করা যেতে পারে। যেভাবেই হোক। তারা উপরে তালিকাবদ্ধ হিসাবে চালানো যেতে পারে। আর একটি বৈধ অর্ডারিং (টি 1-এর আগে, টি 2-আগে, টি 2-লক, টি 1-লক, টি 2-পরে, টি 1-পরে)। প্রচুর বৈধ অর্ডার রয়েছে।
অপেক্ষা করুন।
এটি ছয়টি রাজ্য সহ কেবল একটি রাষ্ট্রীয় যন্ত্র।
এটি একটি অ-নিরঙ্কুশিত সসীম রাষ্ট্র অটোমাতা। টি 2-এক্সএক্সএক্সএক্স রাজ্যগুলির সাথে টি 1-এক্সএক্সএক্সএক্স রাজ্যের ক্রমটি অনির্দিষ্ট এবং এটি কোনও বিষয় নয়। সুতরাং এমন জায়গাগুলি রয়েছে যেখানে "পরবর্তী রাষ্ট্র" একটি কয়েন টস।
উদাহরণস্বরূপ, যখন এফএসএম শুরু হয়, টি 1-এর আগে বা টি 2-পূর্ব উভয়ই বৈধ প্রথম রাষ্ট্র are একটি মুদ্রা শিরসঁচালন.
ধরা যাক এটি টি 1-এর আগে এসেছিল। কর এটা. এটি হয়ে গেলে, T1-with এবং T2-এর আগে একটি পছন্দ আছে। একটি মুদ্রা শিরসঁচালন.
এফএসএমের প্রতিটি ধাপে দুটি পছন্দ (দুটি থ্রেড - দুটি পছন্দ) থাকবে এবং কোন মুদ্রার টস নির্ধারণ করতে পারে কোন নির্দিষ্ট রাজ্যটি অনুসরণ করা হয়।