iOS开发之GCD(1)初探

概念:

GCD即Grand Central Dispatch,它是异步执行任务的技术之一。一般将应用程序中技术的线程管理用的代码在系统层级上实现。开发者只需要将定义好的任务追加到dispatch queue中,GCD就能生成必要的线程并按计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可以统一管理,也可执行任务,相较于以前的多线程管理更加有效率。


实例:

        dispatch_queue_t mySerialDispatchQueue = dispatch_queue_create(NULL, NULL);
                
        dispatch_async(mySerialDispatchQueue, ^{
           //执行长时间的处理
            //图像识别
            //数据库读取
            dispatch_async(dispatch_get_main_queue(), ^{
                //用户界面更新
            });
            
            
        });

什么是线程:

1个cpu执行cpu命令列为一条无分叉的路径。


什么是多线程:

虽然1个cpu执行cpu命令列为一条无分叉的路径。但是一个物理cpu芯片上可能会有多个cpu(多核),一个执行命令的cpu也可能虚拟化出多个核心,这就使得计算机可以实现多线程处理。甚至当计算机只有一个cpu的时候也能够通过调度(保存当前执行路径的状态到专用内存区块,然后切换执行路径)使得看上去像是一个cpu同时执行多个命令列,这被成为上下文切换。


多线程编程容易遇到的问题:

利用多线程特性编程的技术,我们称之为多线程编程。

(1)数据竞争-多个线程更新相同的资源导致数据的不一致。

(2)死锁-停止等待时间的线程会导致多个线程相互持续等待

(3)内存不足-不合理生成线程,导致大量的内存消耗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值