多线程相关

2019-05-10  本文已影响0人  X勒个F

1. GCD

1. 同步/异步 串行/并发
dispatch_sync(serial_queue, ^{//任务})

dispatch_async(serial_queue, ^{//任务})

dispatch_sync(concurrent_queue, ^{//任务})

dispatch_async(concurrent_queue, ^{//任务})
image image
image image
image
2. dispatch_barrier_async
3. dispatch_group
// 创建一个group
    dispatch_group_t group = dispatch_group_create();
    
    // for循环遍历各个元素执行操作
    for (NSURL *url in arrayURLs) {
        
        // 异步组分派到并发队列当中
        dispatch_group_async(group, concurrent_queue, ^{
            
            //根据url去下载图片
            
            NSLog(@"url is %@", url);
        });
    }
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        // 当添加到组中的所有任务执行完成之后会调用该Block
        NSLog(@"所有图片已全部下载完成");
    });

2. NSOperation

配合NSOperationQueue实现多线程方案

3. NSThread

4. 多线程与锁

上一篇 下一篇

猜你喜欢

热点阅读