iOS 底层 - 多线程的基本概念

2020-04-06  本文已影响0人  水中的蓝天

本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗漏或未能一一列举原文出处还望见谅与指出,另文章内容如有不妥之处还望指教,万分感谢 !

首先对一些基本的概念做一些了解!

什么是进程?

iOS进程生命周期

什么是线程 ?

线程的生命周期@2x.png

线程各个状态下线程所处的位置:
新建状态:在内存中,但不在可调度池
就绪状态:在可调度池中,可以执行任务
运行状态:在可调度池中,正在执行任务
阻塞状态:被移出可调度池,在内存中,不能执行任务
死亡状态:被释放

什么是主线程?

当一个程序启动时,就有一个进程被操作系统(OS)创建,与此同时一个线程也立刻运行,该线程通常叫做程序的主线程(Main Thread),因为它是程序开始时就执行的。主线程是负责执行main函数的线程;主线程中几乎所有的事情都是交给runloop去做,比如UI界面刷新、点击事件的处理、performSelector等需要Runloop,但是像简单的普通代码:NSLog输出、变量定义等是不需要Runloop参与的;

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

什么是多线程 ?

IOS中常见的多线程方案

多线程方案@2x.png
上一篇 下一篇

猜你喜欢

热点阅读