رفتن به مطلب

اجرای کد به وسیله ترد یا نخ ( Thread )


مجید آرتا

ارسال‌های توصیه شده

به نام خدا

سلام

شاید مبحث ترد یا نخ برای بعضی دوستان یکم گنگ باشه ( خب خیلی از دوستان هم تبهر دارند) و اینکه اصلا چیه و چرا باید استفاده بشه  و اینجور موارد.

ببینید دوستان توی سیستم عامل هر برنامه در حال اجرا رو فرآیند میگن و هر فرآیند یا برنامه دارای یک یا چند نخ هستش و هر یک از این نخ ها کارهای متفاوتی رو انجام میده.

خب بزارید مثال واضح تری رو بزنم;برای ساخت نرم اقزاری مثل تلگرام به تنهایی یک فاجعس یعنی کارهای دیزاین و امنیت و معماری برنامه و پایگاه داده و ..........رو باید به تنهایی انجام بدید و این خیلی سنگینه.اما اگه یک تیم برنامه نویسی باشین به راحتی تقسیم کار میشه قسمت دیزاین و امنیت و پایکاه و غییره همه تخصیص داده میشه به متخصصین و این فشار کار رو پایین میاره و کیفیت کار رو بالا میبره.این قضیه توی برنامه نویسی مستثنی نیست و برنامه ما در حالت کلی یک نخ یا ترد داره خب ما اگه بخواییم دانلود فایل و رندر کردن ui  و مثلا محاسبات سنگین رو فقط با یک ترد اجرا کنیم چندی بعد با خطای Force Close  عزیز مواجه میشیم.

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

در کل در صورت تمایل برای یادگیری بهتر بحث تردینگ می تونید مقاله سیستم های عامل رو مطالعه کنید.

حالا ما توی برناممون می خواییم چندین فایل رو دانلود کنیم و برای هر کدوم یک پراگرس بار بزاریم و این با ترد برنامه به تنهایی امکان پذیر نیست و باید از کلاس Thread  استفاده بشه و به شکلی به صورت پویا تعریف بشه

خب به این شکل میتونید از ترد استفاده کنید :

    Thread t = new Thread(new Runnable() {
          
		  @Override
          public void run() {
              // Your Method's Or Code's
                
          }
      });
	  t.start();

شما می تونید یک کلاس سفارشی برای ترد بسازید که به صورت پویا بتونید کارها رو با ترد انجام بدید ولی خب نکته اینه که اگه بخوایید از داخل کلاس ویو ها رو کنترل کنید باید از Handler  استفاده بشه

در کل موضوع ما مربوط به ترد میشه و موارد مورد نیاز گفته شد

امیدوارم موفق باشید

www.AnswerCenter.IR

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 هفته بعد...

دوست عزیز لطفا یه آموزش ساده بزار

فکر کنم وقتی برنامه تو حلقه میره و طولانی میشه باید از threading استفاده بشه.چون اکتیویتی هنگ میکنه

خواهشن یه آموزش ساده بزار

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...