第三章 3.2.12 dispatch_once
2018-07-26 本文已影响3人
MrSYLong
dispatch_once函数是保证在程序执行中只执行一次指定处理的API
static int initialized = NO;
if (initialized == NO) {
// 初始化
initialized = YES;
}
说明:
上面代码,在大多数情况下是安全的,但是在多核CPU中,在正在更新表示是否初始化的标志变量initialized时读取,就有可能多次执行初始化处理
static dispatch_once_t pred;
dispatch_once(&pred, ^{
//初始化
});
说明:
在多线程环境下执行,也可以保证安全