iOS学习之多线程编程

本文介绍了iOS中的多线程编程,探讨了CPU的执行原理和多线程的概念。多线程允许在单个CPU核心上通过上下文切换实现并发执行,而在多核CPU上则可以真正并行执行。然而,多线程编程也存在数据竞争、死锁和内存消耗等问题。尽管如此,使用多线程能够确保应用程序的响应性能,避免主线程被长时间处理阻塞导致的用户体验下降。
摘要由CSDN通过智能技术生成

多线程编程简介

       一个CPU一次只能执行一个命令,不能执行某处分开的并列的两个命令,因此通过CPU执行的CPU命令行就好比一条无分叉的大道,其执行不会出现分歧。

       ”一个CPU执行的CPU命令列为一条无分叉路径“即为线程.

       现在一个物理的CPU芯片实际上有64个(64核)CPU,如果一个CPU核虚拟为两个CPU核工作,那么一台计算机上使用多个CPU核就是理所应当的事了。尽管如此”一个CPU执行的CPU命令列为一条无分叉路径”仍然不变。

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

       OS X和IOS的核心XNU内核在发生操作系统时间时(如每隔一定时间,唤起系统调用等情况)会切换执行路径。执行中路径的状态,例如CPU的寄存器等信息保存在各自路径专用的内存块中,从切换目标路径专用的内存块中,复原CPU寄存器等信息,继续执行切换路径的CPU命令列。这被称为”上下文切换”。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fswy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值