#import "CustomObject.h"
static CustomObject *obj = nil;
@implementation CustomObject
+ (id)currentObject{
//如果对象已创建,则返回当前对象,否则则创建一个对象
    if (!obj) {
        //理论上,单例默认,这个if判断只允许执行一次,因为obj的指针不能有变化
        //在多线程中,因为该方法会暂停一秒。在此其间,第一个线程会进入if的判断,并在创建前会暂停一秒。其他线程通过if判断仍然是Nil所以也会进行创建。
        sleep(1);
        obj = [CustomObject new];
        NSLog(@"obj %@",[NSThread currentThread]);
    }
    return obj;

}

+ (id)shareObject{
    //保证在整个进程的生命周期中只执行一次。实际应用中建议使用此方法
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        obj = [CustomObject new];
    });
    return obj;
}


@end