iOS多线程之一:基本概念

计算机操作系统都有的基本概念,以下概念简单方式来描述。

进程:就是在系统中,正在运行的一个应用程序。
线程:是 CPU 调度的最基本的单位,它有自己栈和寄存器。

进程和线程的区别
进程和线程的主要差别在于它们是不同的操作系统资源管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

并发:多个任务同时发生,需要被处理。比如,田径赛场上的起跑线上有多个运动员等待起跑。
并行:在某一个时间能够同时处理多个任务。比如,火车站开放了多个检票口,同一时间能够服务多个旅客。
串行:线程执行只能依次逐一先后有序的执行,串行中,一个任务的执行必须以上一个任务执行结束为前提。

串行和并行主要区别在于一个任务的执行是否以上一个任务的完成为前提。串行中,一个任务的执行必须以上一个任务执行结束为前提,并行中,一个任务的执行与上一个任务的执行状态无关。以排队买票为例,串行像单个买票队伍,单个卖票窗口,必须一个一个来,串行像单个买票队伍,多个卖票窗口,多个人可以同时买票。

同步:就是顺序往下执行。举例:烧完水后泡茶
异步:就是几件事情同时在执行。烧水的时候拿出茶具,洗茶具,然后泡茶。其中烧水和拿茶具,洗茶具是同时进行的。

二、iOS 多线程方案

iOS中其实目前有4套多线程方案,他们分别是:
1、pthreads
2、NSThread
3、GCD
4、NSOperation & NSOperationQueue

三、iOS 多线程原理
同一时间,CPU 只能处理一条线程,就是只有一条线程在工作,多线程之间的并发操作,其实就是 CPU 在多条线程之间快速的切换。如果 CPU 调度的线程的时间足够快,就造成了多线程并发执行的假象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 9,678评论 0 23
  • 1. 线程和进程 在了解多线程之前,我们现在熟悉两个概念,线程和进程. 一. 线程 线程:进程的基本执行单元,一个...
    周灬阅读 2,854评论 0 0
  • 多线程的四种解决方案:pthread,NSThread,GCD,NSOperation 一、多线程的基本概念进程:...
    阳明AI阅读 3,392评论 0 3
  • 在那一刻,我意识到,我必须选择,要么对一切屈服,得过且过地生活,要么就得努力,争取过上梦想的生活。 进程、线程和以...
    背包技术阅读 7,965评论 0 2
  • 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述。 多线程的基本概念 线程的状...
    JasonL阅读 2,463评论 0 2

友情链接更多精彩内容