PDA

View Full Version : سوال: thread یا نخ چست؟



zahra_m_alipoor
دوشنبه 03 خرداد 1389, 23:31 عصر
سلام .من میخوام بدونم نخ چیه و کاربردش کجاست
منون میشم اگه کمکم کنید

mohamad_ice
سه شنبه 04 خرداد 1389, 00:18 صبح
سلام .من میخوام بدونم نخ چیه و کاربردش کجاست
منون میشم اگه کمکم کنید

سلام دوست عزیز

ببین Thread در حقیقت یه light Process هست !
ازلحاظبحث فنی سوئیچ کردن بین Thread هاییک فرآیند برای CPU وقت کمتری میگیره
تا به نسبتسوویچ بین2 فرآیند!
در مورد بجث برنامه نویسی وقتی بخوای چند عمل همزمان شروع به کار کنن میتونی
یه کلاس از نوع Thread بگیری و اون عملیات رو داخل اون کد کنی(کلا بحث همزمانی)


مثلا فرض کن چندین شی برای نمایش داری
مثلا یه سری توپ داخل صفحه حرکت میکنند به طور کاملامستقل
اگه بخوای با هر چیز دیگه غیر Thread کردنشون حرکتشون رو کنترل کنی تقریباسخت میشه
امااگه Thread باشه یه بار کد کلاسو تعریف میکنی و n تا شی ازش میگیری و نمایش میدی
اینا هر کدومرفتار رندوم خودشو داره وکار خیلی ساده میشه !!!


اگه توضیح بیشتری نیاز بود پ.خ بده
موفق باشی

zahra_m_alipoor
سه شنبه 04 خرداد 1389, 00:48 صبح
ببینید من اینو میدنونم که thread مبحث همزمانی رو مطرح می کنه ولی دقیقا نمیدونم که thread چی هیست
یکی از استادام گفتن که سیستم عامل به عنوان یک بستر تا 4 گیگابایت از منابع خودش رو در اختیار application قرار میده تا cpu کار کنن و این 4 که در اختیار application قرار مدهد را proccess مگن و proccess تو خودش باید thread داشته باشه
من اصلا نفهمیدم منظورشون چیه؟؟؟
لطفا کمکم کنید.
ممنون

zahra_m_alipoor
سه شنبه 04 خرداد 1389, 00:54 صبح
این رو هم میدونم که thread ها در واقع تیکه کد های اجرایی هستند که توی cpu برای ما کار انجام میدهند.
ولی هنوز هم مطلب برام گنگ

zahra_m_alipoor
سه شنبه 04 خرداد 1389, 01:02 صبح
این قسمت خیلی کمکم کرد
http://www.barnamenevis.org/forum/showthread.php?t=177413

mohamad_ice
سه شنبه 04 خرداد 1389, 01:08 صبح
ببینید من اینو میدنونم که thread مبحث همزمانی رو مطرح می کنه ولی دقیقا نمیدونم که thread چی هیست
یکی از استادام گفتن که سیستم عامل به عنوان یک بستر تا 4 گیگابایت از منابع خودش رو در اختیار application قرار میده تا cpu کار کنن و این 4 که در اختیار application قرار مدهد را proccess مگن و proccess تو خودش باید thread داشته باشه
من اصلا نفهمیدم منظورشون چیه؟؟؟
لطفا کمکم کنید.
ممنون


کلایا شما جمله بندیتون اشتباهشده !
یا استادتون ...
اولا بحث4 گیگ یا اینا مطرح نیس !!!

نقل مطلب از صفحه 164 کتاب سیستم های عامل استالینگز:

بنابراین تمام نخهای یک فرآینددر حالت و منابع آن فرآیند شریک هستند
آنها در یک فضایآدرس هستند و به داده هاییکسان دسترسی دارند. هنگامی که نخی یک عنصر داده را در حافظه تغییر بدهد دیگر نخ ها در دسترسی به آن عنصر حاصل تغییرات را میبینند. اگر نخی پرونده ای را برای خواندن باز کند دیگر نخ ها ی آن فرآیند نیز می توانند از آن پرونده بخوانند

منافع کلیدی نخ ها:
1- ایجاد یک نخ در یک فرایند موجود از ایجاد یک وظیفه جدید بسیار کمتر وقت میگیرد
2- پایان دادن به یک نخ سریعتر است
3- تعویض 2 نخ درداخل یک فرآیند وقت کمتری میگیرد
...
کلا یه فصله و کلی مطلب
امیدوارم مفید باشه

zahra_m_alipoor
سه شنبه 04 خرداد 1389, 01:36 صبح
ممنون از کمکتون ولی اینطوری من سردرگم شدم
ولی مطلب مهیم که دسگیرم شد اینه که باید اول کتاب سیستم عامل رو خوب بخونم

saber187518
سه شنبه 04 خرداد 1389, 01:44 صبح
با سلام
نخ ها کاربرد های بیشتری هم دارن
مثلا برای بالا بردن راندمان cpu از نخ ها استفاده میشه.
و همچنین برای اینکه شما بتونین یک برنامه رو با سرعت بالاتری انجام بدید این کار رو استفاده می کنید(نخ ها).
مثلا یک برنامه پردازش تصویر رو در نظر بگیرید که قراره شما داخل اون برنامه روی تمامی پیکسل های تصویر یک عمل رو انجام بدید. اگر برنامه با یک نخ {هر فرآیند از یک یا چند نخ تشکیل شده است} کار را انجام بده. و با فرض اینکه الان داخل cpu 20 تا نخ خستند که منتظر زمان اجرا هستند. در واقع 5% شانس داره که cpu بهش برسه و کارش رو انجام بده.
اما شما تصور کن که به جای 1 نخ 20 تا نخ داشته باشیم.
حالا به جای 5% دقیقا 50% شانس گرفتن cpu رو داره. در نتیجه کارش خیلی زودتر انجام میشه.
و اگه بخوام یه جمله بگم اینه که شما با نخ ها میخواید موازی کاری رو انجام بدید.{شبیه سازی}
موفق باشی