سلامبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط rbm برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
ربطی به نرم افزار نداره .
معمولا ربط به این داره که چقدر کارهایی که میکنید ، از هم مجزا هستند و مخصوصا کار مجزایی که پردازش سنگین هم بخواد .
ممکنه حتی در یک متد ، دو ، یا چند کار متفاوت و مجزای سنگین داشته باشید که بصرفه یک ، یا چند نخ مجزا ایجاد کنید اما حتی پیش بیاد که در کل یک نرم افزار ، کاری این چنینی نباشه .
البته عمده ترین کاربرد نخ ها ، در مورد بالاست .
بجز این ، نخ های مجزا را هم زمانی ایجاد میکنن که نخ اصلی (یا همون نخ ui ئه برنامه) ، بخواد پاسخگو باشه و قفل نکنه (که معمولا در این حالت ، یه نخ ساده میسازن که مدیریت اش هم چندان پیچیده نیست و البته معمولا کارایی ای هم جز پاسخگو کردن نخ اصلی نداره ، یعنی باعث افزایش سرعت خاصی در برنامه هم نمیشه) .
بله .برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط rbm برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
بسته به نوع نرم افزار و نوع کار نخ ها و مخصوصا پیچیدگی کار ، در موارد زیادی ، کار را شدیدا سخت میکنه مخصوصا هر چی تعداد نخ ها زیادتر بشه .
اگه نخ ها در جای مناسب شون استفاده نشن ، دقیقا تاثیر برعکس داره . یعنی بجای اینکه افزایش کارایی و سرعت داشته باشه ، نسبت به نخ های کمتر ، حتی ممکنه باعث کاهش سرعت بشه . مخصوصا اگه چند نخ ، به یک داده ی مشترک (که معمولا متغییر سراسری هستن) بخوان دسترسی داشته باشن و هر چی میزان این نوع دسترسی ها بیشتر باشه ، هم مدیریت اون قطعه از کد ، پیچیده تر میشه و هم کاراییِ اون قطعه از کد ، پایین تر میاد (مخصوصا اگه سوئیچِ بینِ نخ ها یا context switch ، بیشتر بشه) .
قطعا اگه در جای مناسب اش استفاده بشه ، ارزش داره (دو مورد از موارد پر استفاده اش ، در بالا گفته شد) .برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط rbm برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
ربط چندانی به سخت افزار نداره . شما اگه 2 نخ در برنامه تون بنویسید (منظور ، 2 نخ ای که کار زیادی و مخصوصا مستمری انجام بدن نه اینکه نخی که کار سبک ، فرضا مثل نخی که برای پاسخگو کردن نخ ui مینویسن) ، باز هم یه پردازنده ی 2 هسته ای برای برنامه تون کافی هه (که از 15 سال پیش هم ، معمولا اغلب سخت افزارها ، پردازنده ی 2 هسته ای داشتن چه برسه به پردازنده های امروزی) .
هر چند با نرم افزارهایی که نام بردید کار نکردم اما بعیده که این برنامه ها ، همزمان ، بیش از 2 نخ ای که کار مداوم و طولانی ای بخواد انجام بده ، داشته باشن . یعنی در واقع ، به بیش از یه پردازنده ی 2 هسته ای نیاز داشته باشن (دقت کنید که تعداد نخ هاشون را نگفتم . ممکنه تعداد نخ ها در این برنامه ، ده ها یا صدها نخ باشه اما حجم کاری که اون نخ یا نخ ها انجام بدن ، مهم هست) .
Bookmarks