آموزش کنترل همزمانی در توسعه  iOS با Swift 2

3 سال پیش

آموزش کنترل همزمانی در توسعه  iOS با Swift 2

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کنترل همزمانی در توسعه  iOS با Swift 2 خواهیم پرداخت.

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

همزمانی می تواند برنامه شما را سریعتر، تمیزتر کرده و تجربه بهتری را به کاربر ارائه دهد. استفاده از چند رشته برای بسیاری از توسعه دهندگان دشوار به نظر می رسد ، اما API مانند NSOperation و Dispatch Queues استفاده از همزمانی و چند رشته را در برنامه آسان می کند.

GCD

GCD متداول ترین API برای مدیریت کد همزمان و اجرای عملیات غیرهمزمان در سطح سیستم است. GCD صف وظیفه را تهیه و استفاده می کند. این صف ها ساختار داده ای هستند که از اصطلاحات FIFO استفاده می کنند ، به عنوان مثال وظیفه در وهله اول در یک صف ابتدا اجرا می شود و کار در آخرین صف در آخر اجرا می شود.

به عنوان مثال – فرض کنید یک خط رزرو بلیط فیلم ، اگر شما آخرین نفر باشید ، آخرین بلیط را دریافت می کنید و اگر کسی به دنبال شما بیاید ، پس از شما بلیط دریافت می کند.

صف اعزام

صف اعزام (Dispatch Queue) روشی آسان برای انجام وظیفه همزمانی در برنامه شماست. دو نوع صف وجود دارد –

صف های سریالی – آنها وظایف را به صورت سری ذخیره می کنند و همزمان یک کار را انجام می دهند.

صف های همزمانی – آنها وظایف را به صورت سری ذخیره می کنند و همزمان یک کار را انجام می دهند.

برخی از توابعی که برای ایجاد یا گرفتن صف استفاده می شوند عبارتند از:

dispatch_queue_create       
// create a serial or concurrent queue 
dispatch_queue_get_label     
// get the label of a given queue 
dispatch_get_main_queue   
// get the one and only main queue 
dispatch_get_global_queue    
// get one of the global concurrent queues

 

افزودن وظایف به صف

 

دو نوع تابع وجود دارد که به افزودن وظایف به صف کمک می کند. آنها هستند –

توابع همزمان –

  • dispatch_once – فقط وقتی کار در طول برنامه انجام شود ، کار را ارسال می کند.
  • dispatch_sync – کاری را به صف ارسال می کند و فقط پس از اتمام کار برمی گردد.

توابع ناهمزمان –

  • Dispatch_async – کاری ارسال می کند و برمی گرداند.
  • Dispatch_after – بلافاصله برمی گردد اما برای یک زمان خاص به تأخیر می افتد.
  • Dispatch_async – بلافاصله برمی گردد اما کار چندین بار ارسال می شود.

 

 مثال

در زیر کد مثال برای افزودن وظایف به صف وجود دارد.

dispatch_async(dispatch_get_main_queue(), update_block);  
// add update_block to main queue  

dispatch_apply(i, some_queue, work_block)  
// add work_block to some_queue i times  

dispatch_sync(background_queue, blocking_block)  
// add blocking block to background queue and wait for completion

 

مثال کلی استفاده از صف

کد زیر نمونه ای از استفاده از صف است.

dispatch_async(background_queue, ^ { 
   // Perform code that takes long time, here. 
   Dispatch_async(dispatch_get_main_queue(), ^ { 
      //Some other task, generally UI. 
   }); 
});

 

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

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

 

منبع.

لیست جلسات قبل آموزش توسعه iOS با Swift 2

  1. آموزش توسعه iOS با Swift 2
  2. آموزش Xcode IDE در توسعه iOS با Swift 2 
  3.  اولین برنامه در توسعه iOS با Swift 2 
  4. آموزش ساخت برنامه تعاملی در توسعه iOS با Swift 2
  5. آموزش ساخت برنامه ها با Swift
  6. آموزش iOS پیشرفته در توسعه iOS با Swift 2
  7. آموزش یکپارچه سازی نقشه ها در توسعه iOS با Swift 2
  8. آموزش طرح بندی خودکار در توسعه  iOS با Swift 2 
  9. آموزش انیمیشن ها در توسعه  iOS با Swift 2
  10.  آموزش دسترسی به خدمات وب در توسعه  iOS با Swift 2
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه