第三章 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, ^{
    //初始化
});

说明:
在多线程环境下执行,也可以保证安全
上一篇 下一篇

猜你喜欢

热点阅读