单例 --- 线程模式

1.Grand Central Dispatch --- GCD单次执行 --- 程序执行期间之执行一次

- (IBAction)GCD_onceDidClicked:(UIButton *)sender {
     
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        // code
    });
 
}

 2.在单例中的应用 --- 此方法正吻合单例的特性(只执行一次,只alloc一次)

+ (instancetype)shareMusicToos
{

    static MusicToos *musicTool = nil;
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        musicTool = [[MusicToos alloc] init];
        [musicTool requestData];
    });
    
    return musicTool;
    
}
原文地址:https://www.cnblogs.com/bachl/p/4703151.html