برای درک بهتر این سوال، اجازه دهید ابتدا نگاهی به برنامه بیاندازیم. یک برنامه یک فایل اجرایی است که حاوی مجموعه ای از دستورالعمل ها است و به صورت غیر فعال روی دیسک ذخیره می شود. یک برنامه می تواند چندین فرآیند داشته باشد. به عنوان مثال، مرورگر کروم فرآیند متفاوتی را برای هر برگه ایجاد می کند.

process vs thread diagram

process vs thread diagram

فرآیند به این معنی است که یک برنامه در حال اجرا است. وقتی برنامه ای در حافظه بارگذاری می شود و فعال می شود، برنامه تبدیل به یک فرآیند می شود. این فرآیند به منابع ضروری مانند رجیستر، شمارنده برنامه و پشته نیاز دارد.

یک Threadکوچکترین واحد اجرا در یک فرآیند است.
فرآیند زیر رابطه بین برنامه، فرآیند و Threadرا توضیح می دهد.

1. برنامه شامل مجموعه ای از دستورالعمل ها است.
2. برنامه در حافظه بارگذاری می شود. تبدیل به یک یا چند فرآیند در حال اجرا می شود.
3. هنگامی که یک فرآیند شروع می شود، حافظه و منابع به آن اختصاص می یابد. یک فرآیند می تواند یک یا چند Threadداشته باشد. به عنوان مثال، در برنامه Microsoft Word، یک Thread ممکن است مسئول بررسی املا و Threadدیگر برای درج متن در سند باشد.

تفاوت های اصلی بین Process و Thread

  1. فرآیندها معمولا مستقل هستند، در حالی که Thread ها به عنوان زیر مجموعه های یک فرآیند وجود دارند.
  2. هر فرآیند فضای حافظه مخصوص به خود را دارد. Thread هایی که به یک فرآیند تعلق دارند حافظه یکسانی دارند.
  3. یک فرآیند یک عملیات سنگین وزن است. ایجاد و پایان دادن به زمان بیشتری نیاز دارد.
  4. تعویض متن بین فرآیندها گرانتر است.
  5. ارتباط بین Thread برای Thread ها سریعتر است.