GCD学习之——dispatch_once

dispatch_once
dispatch_once函数是保证在应用程序执行中只执行一次指定处理的API。下面这种经常出现的用来进行初始化的源代码可通过dispatch_once函数简化。

static int initialized = NOif(initialized == NO)
{
   //初始化
   initialized = YES;
}

如果使用dispatch_once函数:

static dispatch_once_t pred;
dispatch_once(&pred,^{
   //初始化
});

通过dispatch_once函数,该源代码即使在多线程环境下执行,也可保证百分之百安全。
在多核CPU中,在正在更新表示是否初始化的标志变量时读取,就有可能多次执行初始化处理。而用dispatch_once函数初始化就不必担心这样的问题。这就是所说的单例模式,再生成单例对象时使用。

你可能感兴趣的:(单例,ios,Dispatch,gcd)