線程間的通信

一、什么是線程間的通信?

  • 在一個線程中,線程往往不是獨立存在的,多個線程間需要經(jīng)常進行通信
  • 舉個比較常見的例子:在子線程下載圖片,下載完畢之后到主線程顯示圖片。
  • 具體體現(xiàn):
    • 一個線程將數(shù)據(jù)傳遞給另外一個線程。
    • 在一個線程中完成了指定的任務之后,再轉(zhuǎn)到另外一個線程中繼續(xù)執(zhí)行任務
  • 線程的注意點:
    • 不能夠開啟太多的線程(1~3條就行了,不要超過5條)
    • 在主線程(UI線程)顯示/刷新UI界面,處理UI控件的事件(點擊、觸摸、拖拽等
    • 在子線程(后臺/異步線程)執(zhí)行耗時操作(所有的網(wǎng)絡訪問都是耗時操作)
  • 常用的實現(xiàn)方案:


    iOS中多線程的實際方案.png
  • GCD代碼示范:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
   // 執(zhí)行耗時的異步操作...
   dispatch_async(dispatch_get_main_queue(), ^{
       // 回到主線程,執(zhí)行UI刷新操作
   });
});
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容