《Objective-C高级编程》---笔记---GCD

GCD详解:并行处理与线程管理
GCD(Grand Central Dispatch)是苹果平台的一种异步执行任务的技术,它简化了多线程编程。开发者只需定义任务并将其添加到DispatchQueue,系统会自动管理线程。GCD包括dispatch_async、dispatch_sync等API,用于同步和异步执行。通过dispatch_semaphore_t可以避免内存错误。DispatchQueue是FIFO队列,可通过dispatch_set_target_queue设定执行顺序。GCD的核心包括线程管理和Block的调度,有助于提高程序效率。

GCD

什么是GCD?

Grand Center Dispatch大中心调度
GCD是异步执行任务的技术之一。
一般,将应用程序中记述的线程管理用的代码在系统级中实现,开发者只需要定义想执行的任务并追加到适当的 Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。

现在一个物理的CPU芯片实际上有64个(64核)CPU,如果一个CPU核虚拟为两个CPU核工作,那么一台计算机上使用多个CPU核就是理所当然的事了。

1个CPU核一次能够执行的CPU命令始终为1。

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

但多线程也会造成一些潜在问题:

在这里插入图片描述

GCD的API

开发者要做的只是定义想执行的任务并追加到适当的Dispatch Queue中。

dispatch_async (queue, ^{
	//想执行的任务
});

在这里插入图片描述

iOS和OS X的核心 – XUN内核决定应当使用的线程数,并只生成所需的线程执行处理。另外,当处理结束,应当执行的处理数减少时,XUN内核会结束不再需要的线程。

dispatch_after函数,并不是在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值