GCD概要

什么是GCD

是异步执行任务的技术之一。一般将应用程序中技术的线程管理用的代码在系统级中实现。开发者只需要定义想要执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。作为系统的一部分来实现的,比以前的线程更有效率。

dispatch_async(queue, ^
{
    /**
     *长时间处理
     *
     *例如AR用画像识别
     *例如数据库访问
     */

    /**
     *长时间处理结束,主线程使用该处理结果。
     */
    dispatch_async(dispatch_get_main_queue(), ^
    {
        /**
         *只在主线程可以执行的处理
         *例如用户界面更新
         */
    });
});

多线程编程

1个CPU执行的CPU命令列为一条无分叉路径,就是线程。

这种无分叉路径不只1条,存在有多条时即为多线程。在多线程中,1个CPU核执行多条不同路径上的不同命令。

由于使用多线程可以在某个线程和其他线程之间反复多次进行上下文切换,因此看上去就像1个CPU核能够并列地执行多个线程一样。而且在具有多个CPU核的情况下,就不是看上去像了,而是真的提供了多个CPU核并行执行多个线程的技术。

多线程可能存在的问题:

数据竞争、死锁、太多线程导致消耗大量内存。

但是使用多线程编程可保证应用程序的响应性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Win_77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值