今天我們使用GCD來快速實(shí)現(xiàn)一下的iOS多線程編程。此處只做一個(gè)簡單實(shí)現(xiàn),不講述原理及相關(guān)背景知識。
實(shí)現(xiàn)效果圖
開始動(dòng)手。
Step1. 創(chuàng)建一個(gè)新工程,并創(chuàng)建新頁面。
創(chuàng)建工程
創(chuàng)建新頁面
綁定控件
Step2. 在Click:函數(shù)內(nèi)鍵入單線程的代碼。
單線程順序執(zhí)行兩個(gè)任務(wù)
Step3. 運(yùn)行程序,看看單線程的效果。
單線程效果預(yù)覽
明顯可以感覺到,按下按鈕后在執(zhí)行過程中UI是沒有反應(yīng)的,而且中間執(zhí)行完第一個(gè)任務(wù)后,label的文本沒有立即變化,只有全部執(zhí)行完后才變化。
Step4. 換用多線程,采用GCD試試看。
加入dispatch_queue_t的變量
更新Click:函數(shù)體
回調(diào)的block
Step5. 試試多線程的效果。
可以看出不僅可以運(yùn)行時(shí)交互多次點(diǎn)擊毫無卡頓停滯,而且運(yùn)行時(shí)間短,畢竟并行。
原文來自:簡書/jxfactor