Interview Basic Questions
✅ Process মানে হচ্ছে একটা running program যেটার নিজস্ব memory space থাকে, কিছু data আর resource ধারণ করে, এবং নির্দিষ্ট একটা কাজ করে।
🧠 উদাহরণ:
আমি যদি একসাথে Chrome Browser, VS Code আর Postman চালাই—এগুলো প্রত্যেকটা হচ্ছে আলাদা আলাদা process।
✅ Thread মানে একটা process এর ভেতরে ছোট কাজের unit, যেগুলো একই মেমোরি শেয়ার করে একসাথে আলাদা কাজ করতে পারে।
🧠 উদাহরণ:
Chrome browser-এর প্রতিটা ট্যাব, UI interaction, ভিডিও প্লে—এগুলো প্রত্যেকটা আলাদা thread দিয়ে পরিচালিত হতে পারে।
📌 মোটাদাগে বললে:
Process যদি হয় একটা অ্যাপ, Thread হচ্ছে ঐ অ্যাপের ভেতরের একাধিক রানিং টাস্ক।
✅ Multithreading মানে:
একটা প্রসেস যখন একাধিক থ্রেড তৈরি করে, এবং সেই থ্রেডগুলো একই সময়ে আলাদা কাজ করে।
🧠 উদাহরণ:
একটা অ্যাপে একদিকে ডাটা লোড হচ্ছে, অন্যদিকে ইউজারের ইন্টারঅ্যাকশন হ্যান্ডেল হচ্ছে — এসব একাধিক থ্রেডে হয়ে থাকে।
✅ Concurrency মানে:
একই সময়ে একাধিক কাজ handle করা। যদিও সব কাজ একসাথে (parallel) না হয়ে সময় ভাগ করে চলে।
🧠 উদাহরণ:
আমি রান্না করছি, মাঝে মাঝে ভাত নেড়ে দিচ্ছি, আবার মাঝে মাঝে ডাল ও চেক করছি। এইযে একই সময়ে দুইটা কাজ সামলানো সময় ভাগ করে করে—এটাই concurrency।
সর্বসাকুল্যে বললে,
- Process হচ্ছে সম্পূর্ণ আলাদা প্রোগ্রাম, নিজের মেমোরি সহ।
- Thread হলো প্রসেসের ভেতরে ছোট ছোট কাজের ইউনিট।
- Multithreading হচ্ছে একই প্রসেসে একাধিক থ্রেড একসাথে চালানো, আর
- Concurrency হলো একইসাথে একাধিক কাজ সামলানো (parallel না হলেও)