سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Mohamad Mahdi Yazdani
parallel vs concurrent
جامعه پایتون (وب) ایجاد شده در ۰۷ آذر ۱۴۰۰
<p>سلام</p><p>من توی درک concurrent و parallel یکم مشکل دارم(سر فصل مربوطه رو هم دیدم) درکی که ازشون دارم رو مینویسم اگه جایی اشتباه چیزی رو متوجه شدم ممنون میشم بگید بهم.</p><p>خب توی parallel ما عملیات هارو به صورت موازی انجام میشه و این parallel توی cpu‌های تک هسته ای انجام نمیشه(اگر هم انجام بشه همزمانی هستش و کانکارنت عه) اگه با همون مثال معروف کیک خوردن و هم زمان اواز خوندن بریم جلو، توی parallel یه تیم دونفره میشیم یکیمون کیک میخوره و یکی اواز میخونه و به صورت موازی عملیات انجام میشه.</p><p>اما توی concurrent یک توهمی از موازی بودن به ما میده که عملیات‌ها همزمان در حال انجام شدنن( اما هم زمان اجرا یا تموم نمیشه) توی همون مثال کیک و اواز من اول نصف کیک رو میخورم بعد نصف اهنگ رو میخونم و دوباره این تکرار میشه و اینکه concurrent در کل روش اجراش خیلی بستگی به معماری سیستم عامل داره </p><p><br></p><p>اگه مثال واقعی ای‌تری توی همین حوزه نرم افزار هم بزنید ممنون میشم.</p>

درود بر شما

مثالی که زدید و توضیحاتی که درج کردید کاملا صحیح هست.

در برنامه‌های عادی نوشته شده با زبانهای برنامه نویسی مختلف، شما میتونید ویژگی parallel رو در قالب تابعهای مختلف استفاده کنید و اغلب زبانها برهمین اساس توابع رو فراخوانی و برنامه رو اجرا میکنند.

اما همونطور که خودتون هم اشاره کردید از مفهوم concurrent بیشتر در بخش انجام عملیات بر روی هسته استفاده میشه. نمونه نرم افزاری خیلی رایجی که میتونم مثال بزنم، روی اجرای عملیاتهای پردازشی هوش مصنوعی هست. معمولا حجم داده به شدت زیاد هست و در حالت عادی اجرای کد چندین روز تا چندین هفته طول میکشه و سیستمهای روزمره ما جوابگو نیستند. در این حالت برنامه نویس بسته به ضرورت کار و همچنین قدرتی که سیستم بهش میده، میتونه برنامه رو به صورت concurrent روی یک هسته اجرا کنه و به باقی کارها برسه تا اون تسک تموم بشه، یا اون رو به صورت parallel بین هسته‌های سیستم عاملش تقسیم کنه که اغلب از همین روش استفاده میکنند.

پاینده باشید


بهترین پاسخ
نازنین کریمی مقدم ۰۹ آذر ۱۴۰۰، ۱۲:۳۶