在一個頁面可能會有請求多個接口的情況,而接口的請求是異步的郭蕉,為了能保證一個頁面數(shù)據(jù)的同步處理疼邀,針對多個異步線程的處理建議使用信號量機制旁振,在異步線程開始前將信號量加1,線程執(zhí)行完成后再把信號量減1涨岁,然后通過線程的匯總,在信號量為0的時候執(zhí)行頁面數(shù)據(jù)的處理操作梢薪。
信號量的加減操作有兩種:
第一種:
自定義一個信號量dispatch_semaphore_t,一般默認初始化的信號量值是0.
信號量加1:
dispatch_semaphore_signal(semaphore);
信號量減1:
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
第二種:
創(chuàng)建線程組dispatch_group_t秉撇,對線程組進行信號量的加減操作
信號量加1:
dispatch_group_enter(group);
信號量減1:
dispatch_group_leave(group);