Home » COMPUTER » Thread

Thread

Thread কি?

Thread হল process code এর মধ্যে execution এর path । Thread এবং process এর property অনেকটা সমান তাই একে অনেক সময় lightweight process ও বলা হয়।

Thread একের পর এক execute হয় , কিন্তু আপাত দৃষ্টি তে মনে হতে পারে parallel execute হচ্ছে। একটি thread এর বিভিন্ন state রয়েছে। এবং প্রতিটি thread এ থাকে

  1. A program counter
  2. A register set
  3. A stack space

এর নিজস্ব program counter থাকে যার কাজ হল process সংক্রান্ত কিছু জিনিসের হিসেব রাখা, যেমন – পরবর্তী instruction যা execute , system registers যেখানে current working variable গুলি আছে এবং stack যেখানে execution history ইত্যাদি।

এবং একটা process এর মধ্যে এরকম অনেক গুলি thread থাকা সম্ভব। Thread গুলি একে অপরের থেকে আলাদা ভাবে কাজ করতে পারেনা , কারন এদের সবার code, data, OS resources ইত্যাদি সমান।

Process vs Thread


Process এবং Thread এর মধ্যে মূল পার্থক্য হল , একটি process এর মধ্যে সব thread গুলি একই memory space share করে। কিন্তু process গুলি নিজস্ব memory space এ run করে।

Thread এবং Processe এর মধ্যে যে Similarity আছে তা হল –

  • thread বা process, কোন নির্দিষ্ট সময়ে যে কোন একটি active থাকতে পারে।
  • process এর মধ্যে দুটিই sequentially execute হয়।
  • child thread এবং child process থাকা সম্ভব ।

Thread এবং Process এর Difference –

  • Thread কখন independent হতে পারেনা, কিন্তু process পারে।
  • Thread গুলি একে অপরের মধ্যে information share করতে পারে কিন্তু process গুলি তা পারে না ।

Types of Thread

মূলত দুই ধরনের thread রয়েছে −

  1. User Level Threads
  2. Kernel Level Threads

Process এর থেকে Thread এর সুবিধা


Responsiveness: process গুলি সাধারনত multiple thread এ ভাগ করা থাকে , এর ফলে যখন একটি thread এর execution complete হয় সঙ্গে সঙ্গে তার output পাওয়া যায়।

Faster context switch: thread এর Context switch time process এর তুলনায় কম।

Effective utilization of multiprocessor system: যদি একটি process এর মধ্যে অনেক গুলি thread থাকে তখন আমরা thread গুলিকে আকাধিক processor এর জন্য schedule করতে পারি এবং এর ফলে process execution fast হয়ে যায়।

Resource sharing: process এর অন্তরভুক্ত thread গুলি, code, data, এবং file ইত্যাদি Resources share করে।
Communication: thread গুলি নিজেদের মধ্যে তথ্য আদান প্রদান করে এবং common address space share করে।