您的位置:首页 > 运维架构

进程,主线程,异步线程,多线程和runloop的作用和关系

2017-11-04 15:56 411 查看
       

       

        用一个形象的比喻来形容进程,主线程,异步线程,多线程和runloop的作用和关系
一个人吃饭的业务场景:(就是相当于一个进程)

角色1:嘴 (第1个黑色箭头,代表主线程)

角色2:左手拿勺子(第2个黑色箭头,代表子线程1)

角色3:右手拿筷子(第3个黑色箭头,代表子线程2)

角色4:锅包肉,地三鲜,鱼香肉丝,西红柿鸡蛋汤,米饭 (各种任务);

请开始你的表演:

   现在开始吃饭,嘴开始吃东西(主线程开始运行),左手用筷子夹锅包肉(此刻,左手和嘴并不受影响),再用右手拿勺子喝汤(此刻,左手和嘴也并不受影响),所以我们可以看出,各个线程之间只是执行各自的任务,并不互相影响。

我们继续分析,对于吃饭这件事来说,我断了左手也可以完成,我断了右手也可以完成,但是我要是嘴被封住了,就完成不了了,所以说,在一个进程中,一定要有一个主线程,至于子线程可有可无。

    在吃饭的过程中,我用右手夹菜给嘴吃,吃完后,再想吃菜,还要右手夹,嘴里的菜要反复嚼,那么这个行为再程序里就是我们所说的runloop了;

在主线程里runloop默认开启,所以主线程不会死,我们可以从上往下的去执行任务,就像嘴在反复的嚼食物一个,可是对于子线程而言,runloop默认是不开启的;

   这就是我对它们之间关系的理解;

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