您的位置:首页 > 移动开发 > IOS开发

iOS开发—初识多线程

2014-03-04 17:14 218 查看

多线程的操作、处理被运用于多个平台,例如iOS平台、安卓平台、windows平台。无疑多线程的学习与应用都是该平台下较难掌握的,在此小赵仅浅浅的记录下自己对于多线程的学习心得。

首先让我们先来认识下线程。(先来一些理论,可能会有些乏味,但是这是学习多线程必须要掌握的知识体系)

线程:是指程序中一个单一的顺序执行的流程。是执行和调度的基本单位。

身为程序猿应该对以下的词汇有些了解。

多线程并发:cpu运行了多个线程(看似是同时运行,但并不是时间上同时,而是一个cpu轮询的去处理多个线程)。

多线程并行:多个cpu同时去处理多个线程。(时间上同时)

写到这里可能您会有些疑问,如果您因为儿感到一些兴趣的话,请继续往下看。小赵会慢慢的为您解决这些疑问。

好,到这如果您理解了说明您确实异于常人有着堪比爱因斯坦的大脑,如果不理解,接下来小赵会举一些日常经常看到的例子帮助您去理解。

假设有一个饭店,这一天有一个服务员,一个厨师,一个客人。客人要点菜(来任务了),服务员来服务(一个线程),厨师来做这个客人点的菜(cpu开始处理这个线程)。

还是这个饭店,这一天来了两个客人,那么服务员是不是要记录完一个客人的需求然后再去记录另一个人的,此时对于两个任务来说只有一个线程,当初始来做菜的时候就只能先做完一个再去做另外一个,否则服务员要过劳死的。

还是这个情景,来了两个客人,但是饭店是比较人性化的,有了两个服务员,那么对于这两个任务就有了两个线程同时去处理,厨师(cpu)犯难了,有两套菜单,厨师只有一个,怎么办。好,如果您看到这里请您保持住学习的热情继续看下去。此时便是多线程并发的原理了。厨师肯定会先做第一套菜单的一部分菜,然后去做另一套菜单的一部分菜,这样两个服务员才会同时处理好客人的上菜问题(线程轮询的去处理问题),客人才不会产生过多的抱怨。这就是多线程的并发,并不是让厨师同时去料理两套菜单,这个厨师不是哪吒,所以对于并发我们一定要理解这个同时并不是时间上的同时进行,在时间上是轮询的去进行。

多行程的并行相信各位肯定能够理解了,就是多个客人,多个服务员,多个厨师,这样就可以在时间上同时去处理。

至此,对于多线程的一些概念小赵已经尽力阐述完了,若果某些大神路过,请不吝赐教。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: