وقتی که چندتا thread یا multithreading داریم این thread ها به روش همروندی یا روش موازی پروسه را انجام میدهند ؟
1 پاسخ
به سخت افزار و سیستم عامل بستگی دارد. خود سیستم عامل thread ها را مدیریت میکند.
به طور کلی در دنیای واقعی به صورت ترکیبی از همروندی و موازی پروسه تکمیل میشه.
مثلا فرض کنید شرایط زیر را داریم:
سیستم امون ۸ تا thread دارد که این thread ها میتوانند مربوط به processهای متفاوتی باشند.
یک CPU چهار هسته ای داریم.همانطور که میدونید هر هسته از cpu خودش یک پردازشگر جدا است و هسته ها میتوانند به صورت موازی با هم کارها را انجام بدهند.
با شرایط بالا سیستم عامل میتونه به صورت ترکیبی threadها را اجرا کنه. مثلا سیستم عامل ۴ تا thread برمیداره و به صورت موازی روی ۴ هسته اجرا میکنه.
فرض کنید مطابق شکل در مرحله اول thread های 1-3-5-7 روی ۴ هسته به صورت موازی اجرا میشوند.
در حال حاضر چهار thread با شماره های 2-4-6-8 باقی میمونند این ۴ thread را دوباره به صورت موازی روی ۴ هسته اجرا میکنه و این کار را تکرار میکند.
اگر دقت کنید روی هر هسته به صورت همروندی دو تا thread پارند اجرا میشوند. مثلا مطابق شکل، هسته یک thread شماره یک و سه را به صورت همروندی اجرا میکند. این در حالی است که thread های شماره 1-3-5-7 به صورت موازی اجرا میشوند.
اطلاعات کاملتر در این لینک