2018-08-15 优雅的初始化dispatch_queue_t

习惯性的爱使用全局变量定义dispatch_queue_t类型,并在+ (void)load;方法中做初始化。
在AFNetworking中看到了更优雅的做法。代码如下:

static dispatch_queue_t url_session_manager_processing_queue() {
    static dispatch_queue_t af_url_session_manager_processing_queue;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        af_url_session_manager_processing_queue = dispatch_queue_create("com.alamofire.networking.session.manager.processing", DISPATCH_QUEUE_CONCURRENT);
    });

    return af_url_session_manager_processing_queue;
}

你可能感兴趣的:(2018-08-15 优雅的初始化dispatch_queue_t)