এই পোস্টে আমরা জাভাতে একটি প্রসেস (Process) এবং থ্রেড (Thread) এর পার্থক্য বুঝব।
প্রসেস (Process)
- এটি এক্সিকিউশনে থাকা একটি প্রোগ্রামকে বোঝায়।
- একটি প্রসেস তৈরি করতে বেশি সময় লাগে।
- টার্মিনেট হওয়াতে বেশি সময় লাগে।
- কনটেক্সট স্যুইচ করতে বেশি সময় লাগে।
- সিস্টেমের বেশি রিসোর্স খরচ করে।
- কমিউনিকেশনের দৃষ্টিতে কম দক্ষ (less efficient)।
- এটি আইসোলেটেড (isolated) চরিত্রের।
- এটিকে হеви-ওয়েট প্রসেসও বলা হয়।
- এক প্রসেস থেকে অন্য প্রসেসে স্যুইচ করলে অপারেটিং সিস্টেমের ইন্টারফেস ব্যবহার করে।
- যদি একটি সার্ভার প্রসেস ব্লক হয়, তবে আগের প্রসেস আনব্লক হওয়া পর্যন্ত অন্য কোনো সার্ভার প্রসেস এক্সিকিউট হতে পারে না।
- এটির নিজস্ব Process Control Block, Stack এবং Address Space থাকে।
থ্রেড (Thread)
- এটি প্রসেসের একটি সেগমেন্টকে বোঝায়।
- তৈরি করতে কম সময় লাগে।
- টার্মিনেট হওয়াতে কম সময় লাগে।
- কনটেক্সট স্যুইচ করতে কম সময় লাগে।
- সিস্টেমের কম রিসোর্স খরচ করে।
- এগুলো মেমরি শেয়ার করে।
- এটিকে লাইট-ওয়েট প্রসেসও বলা হয়।
- কমিউনিকেশনে আরও দক্ষ।
- এক থ্রেড থেকে অন্য থ্রেডে স্যুইচ করলে অপারেটিং সিস্টেম কল দরকার নয়।
- কার্নেলকে ইন্টারрап্ট করে না।
- যখন একটি সার্ভার থ্রেড ব্লক হয়, তবে দ্বিতীয় থ্রেড একই টাস্কে চলে।
- এটি প্যারেন্টের Process Control Block ব্যবহার করে।
- এটি নিজস্ব Thread Control Block, Stack এবং Common Address Space ব্যবহার করে।