美文网首页
常用的多线程

常用的多线程

作者: 你飞跃俊杰 | 来源:发表于2020-11-17 14:06 被阅读0次

一、异步处理,返回主线程
dispatch_async(dispatch_get_global_queue(0, 0), ^{
// 处理耗时操作的代码块...
//通知主线程刷新
dispatch_async(dispatch_get_main_queue(), ^{
//回调或者说是通知主线程刷新,
});
});

二、队列操作
暂停恢复,先处理A异步,再处理B,然后处理C
dispatch_queue_t myqueue = dispatch_queue_create("queue1", NULL);

dispatch_async(myqueue, ^{
    dispatch_suspend(myqueue);
    }
    
    dispatch_resume(myqueue);
});

dispatch_async(myqueue, ^{
    dispatch_suspend(myqueue);
    }
    
    dispatch_resume(myqueue);
});

三、信号量
处理异步任务的最终同步,ABCD任务处理完再处理其他任务
__block NSInteger number = 0;

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
dispatch_group_t group = dispatch_group_create();

//A耗时操作
dispatch_group_enter(group);
NSLog(@"A-");
dispatch_group_async(group, queue, ^{
    number += 2222;
    dispatch_group_leave(group);
    NSLog(@"A+");
});

//B网络请求
dispatch_group_enter(group);
NSLog(@"B-");
dispatch_group_async(group, queue, ^{
[self sendRequestWithCompletion:^(id response) {
    number += [response integerValue];
    dispatch_group_leave(group);
    NSLog(@"B+");
}];
    });

//C网络请求
dispatch_group_enter(group);
NSLog(@"C-");
dispatch_group_async(group, queue, ^{
    [self sendRequestWithCompletion:^(id response) {
        number += [response integerValue];
        dispatch_group_leave(group);
        NSLog(@"C+");
    }];
});

dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    NSLog(@"%zd", number);
});

相关文章

  • 并行设计模式(一)-- Future模式

    Java多线程编程中,常用的多线程设计模式包括:Future模式、Master-Worker模式、Guarded ...

  • 2019.03.21总结

    09:00~12:00上午课程,多线程 14:00-15:25 多线程 Thread类的常用方法 【重点】 ...

  • iOS 常用宏定义

    常用定义 常用颜色 文件夹/文件路径 frame设置 GCD多线程、父视图获取

  • Android中的多线程

    1. Java多线程基础 Java多线程,线程同步,线程通讯 2. Android常用线程 HandlerThre...

  • iOS 模块分解—「Thread 多线程」

    引导 谈到多线程,想必大家第一反应就是多线程常用的几种实现方式。其中 NSThread、GCD、NSOperati...

  • iOS多线程同步技术之常用锁的使用介绍

    前言:在出现多线程竞争数据的时候往往离不开锁,那么在这里给大家介绍下我们多线程同步技术的常用锁有下面这些 常用锁如...

  • 多线程异步任务处理

    @(多线程&&并发) 多线程异步任务处理 欢迎关注作者简书csdn传送门   我们常用ThreadPoolExec...

  • 多线程学习笔记目录

    基础 如何开启多线程 多线程常用的方法 线程的状态 线程中断 synchronized关键字 wait和notif...

  • 线程池的监控与优化

    多线程池是我们最常用的并行编程工具,多线程是性能优化在多核处理器时代是最常用的手段。而线程池是处理并发请求和任务的...

  • 常用的多线程

    一、异步处理,返回主线程dispatch_async(dispatch_get_global_queue(0, 0...

网友评论

      本文标题:常用的多线程

      本文链接:https://www.haomeiwen.com/subject/uvuyrktx.html