آموزش دونه:مرجع آموزش

چند نخی در دارت (Dart Multithreading) آموزش زبان برنامه نویسی دارت Dart

 

دارت

 

چند نخی در دارت    Dart Multithreading

با استفاده از isolate ها می‌توانیم برنامه هایی بنویسیم که دستورات آن ها به صورت موازی و همزمان اجرا شوند.
در زبان های برنامه نویسی دیگر از نخ ها (Threads) برای این کار استفاده می‌کنیم. اما در زبان دارت، isolate ها این کار را برای ما انجام می‌دهند.

isolate ها همانطور که از نام ان ها پیداست، واحد های ایزوله شده کد در حال اجرا هستند.
تنها راه ارتباط بین این واحد ها ارسال پیام است.
کلاس Isolate در کتابخانه dart:isolate در دسترس است.

استفاده از isolate ها به برنامه ها امکان استفاده از مزایای پردازنده های چند هسته ای را می‌دهد.

برنامه نویسی موازی با استفاده از isolate ها Dart Multithreading

اجازه دهید با یک مثال کار با isolate ها را به شما آموزش دهیم.

متد spawn از کلاس isolate، تابع foo را به صورت موازی با سایر کد های برنامه اجرا می‌کند.
این متد دو پارامتر دارد:

  • تابعی که آن را راه اندازی می‌کند
  • یک شئ که به تابع راه اندازی شده ارسال می‌شود

الزامی به ارسال یک شئ نیست و می‌توانیم آن را null بگذاریم.

در مثال بالا الزامی وجود ندارد که توابع foo و main به یک ترتیب اجرا شوند. حتی ممکن است تابع foo اصلا اجرا نشود.
همچنین هیچ تضمینی به ما داده نمی‌شود که دو تابع فوق چه زمانی اجرا می‌شوند.

با هر بار اجرای برنامه بالا، یک خروجی متفاوت دریافت خواهید کرد.

خروجی ۱:

خروجی ۲:

خروجی که شما بر روی رایانه خود خواهید گرفت، متفاوت از خروجی من خواهد بود.

Dart Multithreading

تفاوت Isolate و Future

استفاده از Future نیز باعث می‌شود تا تابع مورد نظر به صورت async و موازی با ادامه کد های برنامه اجرا شود.
اما هدف اصلی Future برگرداندن مقدار یک تابع بعد از اجرای کامل آن تابع است.
در حالیکه که isolate ها مکانیزمی مستقل و گسترده تر برای ایجاد و پیاده سازی برنامه نویسی موازی هستند.

 

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

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

Dart Multithreading

مطالب مرتبط