PDA

View Full Version : اجرای موازی برنامه



zahra_no
چهارشنبه 16 آذر 1390, 23:42 عصر
سلام

من یک برنامه ساده رو هم به صورت بازگشتی نوشتم هم به صورت ترد

گمان میکردم برنامه ای که با ترد نوشته شده زمان کمتری میگیره ولی ظاهرن اینطور نیست

آیا همیشه ترد ، نسبت به حال عادی زمان بیشتری میبرد؟

gwbasic
چهارشنبه 16 آذر 1390, 23:53 عصر
ایجاد و حذف Thread ها و همچنین Switch کردن بین آنها قطعا زمانی رو از cpu می گیره در نتیجه تاثیر منفی روی سرعت میذاره البته نحوه پیاده سازی هم شرطه ... .

zahra_no
چهارشنبه 16 آذر 1390, 23:55 عصر
من چطوری میتونم تردی پیاده سازی کنم که زمانش کمتر از یک برنامه بازگشتی باشه؟ چطور زمان تو این مساله مهمه

gwbasic
پنج شنبه 17 آذر 1390, 00:13 صبح
تا وقتی که از یک cpu برای اجرای برنامه استفاده می شه Thread‌ها زیاد کمکی نمی کنن. معمولا استفاده Thread‌ها زمانی هست که بخوایم پردازشی انجام بدیم که وقت گیره و این موضوع باعث هنگ کردن UI ما می شه. Thread دیگه کمک می کنه که Thread UI‌هنگ نکنه... . شما باید به این فکر کنین که چطور میشه غیر بازگشتی نوشت چون متدهای بازگشتی هم خودشون زمانبر هستید چون دائما دارن Call می شن و حافظه اشغال می کنن و ... . پس اگه غیر بازگشتی باشه می تونه تو سرعت تاثیر بذاره ابته خوب الگوریتم پیچیده تر می شه. و همینطور استفاده از چند cpu و پردازش موازی می تونه کمک کنه

zahra_no
پنج شنبه 17 آذر 1390, 00:37 صبح
ممنون دوست عزیز بابت راهنماییتون

پس ما نمیتونیم ادعا کنیم که با ترد میتونیم یک برنامه موازی بنویسیم؟ حالا جدا از زمانش
ولی هنگام اجرا به صورت موازی اجرا میشه

mehran_sh_t
پنج شنبه 17 آذر 1390, 08:59 صبح
ولی هنگام اجرا به صورت موازی اجرا میشه

سلام
با یک سی پی یو خیر، یک سی پی یو در آن واحد یک پردازش رو انجام میده، ترد فقط میاد از انجام یک پردازش که ممکنه زمانش طولانی باشه جلوگیری می کنه و پردازش های دیگه ای رو هم به سی پی یو اختصاص می ده.