使用多线程创建单例对象

Posted 张凯泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用多线程创建单例对象相关的知识,希望对你有一定的参考价值。

#import "ZKZApplication.h"

@implementation ZKZApplication

+(instancetype)allocWithZone:(struct _NSZone *)zone
{
    static ZKZApplication *application;
    // dispatch_once是线程安全的,onceToken默认为0
    static dispatch_once_t onceToken;
    // dispatch_once宏可以保证块代码中的指令只被执行一次
    dispatch_once(&onceToken, ^{
        application=[self allocWithZone:zone];
    });
    return application;
}



+(instancetype)shareApplication
{
    return [[self alloc]init];
}
@end

 

以上是关于使用多线程创建单例对象的主要内容,如果未能解决你的问题,请参考以下文章

单例模式的多线程 WCF

多线程以及同步问题

Java线程和多线程——单例类中的线程安全

线程安全的单例模式

java-多线程下的单例模式

多线程与单例模式