এটি মূলত থ্রেড প্রশ্নের বিপরীতে একটি প্রক্রিয়া, উভয়ই খুব আলাদা নয়, কখনও কখনও থ্রেডগুলিকে লাইটওয়েট প্রক্রিয়া বলে। সবচেয়ে বড় পার্থক্যটি হল একটি পৃথক প্রক্রিয়ার নিজস্ব ঠিকানা স্থান রয়েছে তবে অন্যান্য পার্থক্য রয়েছে (1):
প্রক্রিয়া প্রতি
- ঠিকানার স্থান
- গ্লোবাল ভেরিয়েবল
- ফাইল খুলুন
- শিশু প্রক্রিয়া
- মুলতুবি অ্যালার্ম, বাধা এবং সংকেত হ্যান্ডলার
প্রতি থ্রেড
- প্রোগ্রাম কাউন্টার
- খাতাপত্র
- গাদা
- রাষ্ট্র
এই পার্থক্যের ভিত্তিতে একই প্রক্রিয়াতে একটি সার্ভার এবং ক্লায়েন্ট থ্রেড রাখা সুবিধাজনক হতে পারে যাতে আপনি ফাইল হ্যান্ডলগুলি এবং গ্লোবাল ভেরিয়েবলগুলি ভাগ করতে পারেন। এটি 'একই প্রক্রিয়াতে' পদ্ধতির পক্ষে যুক্তি হবে, অন্য (ছোট) যুক্তিটি হ'ল আপনি প্রতি প্রক্রিয়াটিতে কেবল একটি 'উইন্ডোজ ফায়ারওয়াল' পপ-আপ পাবেন। 'ভিন্ন প্রক্রিয়া' পদ্ধতির পক্ষে যুক্তিটি হ'ল কোনও ব্যক্তি একাধিক ক্লায়েন্ট চালানো না করে একাধিক সার্ভার চালাতে পারে। এটি সেট আপ-এর মতো উত্সর্গীকৃত হোস্টের জন্য আদর্শ হবে এবং এটি এমন একটি পদ্ধতির যা আমরা সাধারণত প্রথম ব্যক্তি শ্যুটারগুলিতে দেখতে পাই।
এখন যেমন অফ-লাইন প্লে করার জন্য এমনকি সার্ভার প্রক্রিয়া বা থ্রেড রাখার ধারণাটি রয়েছে (এবং এমনকি একক প্লেয়ারের জন্যও) এটি একটি দুর্দান্ত ধারণা যা অনুশীলনে প্রচুর ব্যবহৃত হয়। লোডিং স্ক্রিনটি দেখে আপনি প্রচুর গেমগুলি এটি করতে বলতে পারেন, 'গ্রহণ' এর মতো ছোট ইঙ্গিতগুলি এটিকে দেবে। এটি করা যুক্তিসঙ্গত যেহেতু আপনি যদি কোনও মাল্টি প্লেয়ার তৈরি করতে চলেছেন তবে বেশিরভাগ গেমের নিয়মগুলি সার্ভার দ্বারা পরিচালিত হবে, তবে কেন এটি একক প্লেয়ারের জন্য এগুলি পরিচালনা করে না? এটি আপনাকে যে কোডটি লিখতে হবে তা হ্রাস করে এবং ক্লায়েন্ট এবং 'গেম' এর মধ্যে একটি স্পষ্ট বিচ্ছেদ দেয় যা আপনার কোডের মানের উন্নতি করবে।
এখন প্রক্রিয়া এবং থ্রেডের মধ্যে কীভাবে যোগাযোগ করা যায়? ক্রস প্রক্রিয়া যোগাযোগ অনেক উপায়ে করা যেতে পারে, (নামযুক্ত) পাইপ, শেয়ার্ড মেমোরি, সিওএম, এটি আপনি যে প্রযুক্তি ব্যবহার করছেন তা সত্যই নির্ভর করে। তবে আপনি যদি কোনও সার্ভার তৈরি করে থাকেন তবে আপনি সম্ভবত সকেট এবং টিসিপির পছন্দ মতো কিছু ব্যবহার করে এএ নেটওয়ার্কিংয়ের বৈকল্পিকের সাথে যেতে চাইবেন, এটি অবশ্যই যেখানে লিডগ্রেন কাজে আসবে।
ক্রস থ্রেড যোগাযোগের জন্য এই কৌশলগুলির অনেকগুলি বৈধ। তবে আপনি যে কৌশলগুলি ব্যবহার করছেন তার উপর এটি আরও বেশি নির্ভর করে। আপনি আবার টিসিপি-র সাথে যেতে পারেন, তবে সম্ভবত একটি আরও সহজ সিস্টেম ঘটনা এবং কিছু মার্শেলিং হতে পারে, যদিও এটি আপনার গেম লুপটিকে অ-সংঘবদ্ধ (2) করতে পারে।
সোর্স
- অপারেটিং সিস্টেমের নকশা এবং বাস্তবায়ন (এমআইএনআইএক্স বই), অ্যান্ড্রু এস টেনেনবাউমের তৃতীয় সংস্করণ
- গ্লেন ফিডলারের দ্বারা আপনার টাইমস্টেপটি ঠিক করুন: http://gafferongames.com/game-physics/fix-your-timestep/