Multi-Threading و Multi-Processing

Y.P.Y

Well-Known Member
Multi-Threading و Multi-Processing چیست؟

Multi-threading معمولاً یک single process برای یک برنامست; مناسبه برای share کردن اطلاعات برنامه بین instance ها، همگی از یک فضای حافظه استفاده می کنن، از performance بالایی برخوردارن، نسبت به انواع crash(مثل data corruption یا access violation) آسیب پذیر هستن که در نتیجه باعث terminate شدن همه thread هاش میشه(وگاهی خود process حتی)، طبیعتاً ساخت thread خیلی سریعتره، debugg کردن اینگونه برنامه ها هم کمی سخت تره...

Multi-processing چند process برای یک برنامست; مناسبه برای چند task ای کردن برنامه در process ها، هرکدوم از فضای حافظه جداگانه ای استفاده می کنن، از performance پایین تری برخوردارن، نسبت به اکثر crash ها آسیب پذیر نیستن(اگر درست طراحی شده باشه) و فقط شاید باعث terminate شدن child process ش بشه، طبیعتاً ساخت process کندتر از ساخت thread انجام میشه، منابع بیشتری هم نسبت به thread مصرف می کنن...

در یک کلام، Multi-threading یک تکنیک مجازی جهت پاسخگو(responsive) بودن به درخواست های مختلف به برنامه هستش. به یک process -> به یک CPU
در یک کلام، Multi-processing یک تکنیک فیزیکی جهت چند task ای کردن برنامه و اجرای task های مختلف برنامه هستش. به چند process -> به چند CPU


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

جدیدترین ارسال ها

بالا