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

ایزوله سازی در فلاتر چیست؟ بررسی مفهوم Isolate در Flutter

بطور کلی در برنامه های فلاتر ، یک Process ایجاد میشه که در داخل این پروسه شما میتونید از روشهای مختلفی برای اجرای دستورالعملهای مختلف بطور همزمان استفاده کنید .

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

زمانی که برنامه ی فلاتر اجرا میشه ، یک main thread یا isolate برای برنامه ی شما ایجاد میشه که کدهای شما داخل اون thread یا isolate اجرا میشن که بهش main thread یا UI thread گفته میشه .

در واقع isolate:

  1. همون Thread در سایر زبانها هست که در Dart بهش isolate میگن
  2. بین isolate ها حافظه ی مشترکی وجود نداره
  3. برای برقراری ارتباط بین isolate ها از port و message ها برای تبادل پیام استفاده میشه
  4. در اجرای سایر isolate ها ،در صورت وجود بیش از یک هسته ، از سایر هسته ها استفاده میشه
  5. کد ها بصورت parallel یا موازی اجرا میشن

در برنامه های ساده ی فلاتر ، معمولا یک isolate وجود داره ، اما درصورتی که قصد انجام عملیاتی طولانی و سنگین رو داشته باشین ، برای اینکه عملکرد UI Thread مختل نشه ، بهتر هست که برای انجام اون کار یک Isolate جدید ایجاد کنین که برای این کار میتونید از Isolate.spawn یا تابع compute فلاتر استفاده کنید .

باید این مسئله رو در نظر داشته باشیم که در فلاتر بااجرای خط به خط کدها روبه رو نیستیم ، بلکه کلیک های کاربر ، ورودی کیبورد ، تایمرها و... نیاز به پردازش دارن . تمام عملیات های ذکر شده ، نیاز به پردازش دارن و طریقه ی پردازش این موارد از طریق صف رویداد (Event Queue) و صف ریزوظایف (Microtask queue) صورت میگیره .


علی شکرالهی
علی شکرالهی

بنیانگذار توسینسو و توسعه دهنده

علی شکرالهی، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس موبایل، مهندسی نرم افزار از دانشگاه آزاد اسلامی واحد کرج ، بیش از 15 سال سابقه ی فعالیت های حرفه ای و آموزشی

نظرات