dispatch_once
dispatch_once函數是保證在應用程序執行中只執行一次指定處理的API。下面這種經常出現的用來進行初始化的源代碼可通過dispatch_once函數簡化:
static int initialized = NO;
if (initalized == NO){
/*
*初始化
*/
initialized = YES;
}
如果使用dispatch_once函數,則源代碼改爲:
static dispatch_once_t pred;
dispatch_once (&pred, ^{
/*
*初始化
*/
});
源代碼看起來沒有太大的變化。但是通過dispatch_once函數,該源代碼即使在多線程環境下執行,也可保證百分之百安全。