بطور کلی در برنامه های فلاتر ، یک Process ایجاد میشه که در داخل این پروسه شما میتونید از روشهای مختلفی برای اجرای دستورالعملهای مختلف بطور همزمان استفاده کنید .
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
زمانی که برنامه ی فلاتر اجرا میشه ، یک main thread یا isolate برای برنامه ی شما ایجاد میشه که کدهای شما داخل اون thread یا isolate اجرا میشن که بهش main thread یا UI thread گفته میشه .
در واقع isolate:
- همون Thread در سایر زبانها هست که در Dart بهش isolate میگن
- بین isolate ها حافظه ی مشترکی وجود نداره
- برای برقراری ارتباط بین isolate ها از port و message ها برای تبادل پیام استفاده میشه
- در اجرای سایر isolate ها ،در صورت وجود بیش از یک هسته ، از سایر هسته ها استفاده میشه
- کد ها بصورت parallel یا موازی اجرا میشن
در برنامه های ساده ی فلاتر ، معمولا یک isolate وجود داره ، اما درصورتی که قصد انجام عملیاتی طولانی و سنگین رو داشته باشین ، برای اینکه عملکرد UI Thread مختل نشه ، بهتر هست که برای انجام اون کار یک Isolate جدید ایجاد کنین که برای این کار میتونید از Isolate.spawn یا تابع compute فلاتر استفاده کنید .
باید این مسئله رو در نظر داشته باشیم که در فلاتر بااجرای خط به خط کدها روبه رو نیستیم ، بلکه کلیک های کاربر ، ورودی کیبورد ، تایمرها و... نیاز به پردازش دارن . تمام عملیات های ذکر شده ، نیاز به پردازش دارن و طریقه ی پردازش این موارد از طریق صف رویداد (Event Queue) و صف ریزوظایف (Microtask queue) صورت میگیره .