iOS - 大厂面试题

一、多线程

二、网络

三、iOS基础

四、iOS

五、iOS底层

六、架构与设计

七、项目优化

八、第三方源码分析

九、算法

十、其他



每次面试都要重新找一下,太累了,在此专门开个专题,收集各大长iOS面试题。也希望大家有资源,也共享下,利人利己!


一、多线程

线程和进程的区别?

1、进程        

        1)进程是一个具有一定独立功能的程序关于某次数据集合的一次运行活动,它是操作系统分配资源的基本单元。                                                                                                                                                                                                                                                                      

        2)进程是指在系统中正在运行的一个应用程序,就是一段程序的执行过程,可以理解为手机上的一个app。

         3)每个进程之间是独立的,每个进程均运行在某专用且受保护的内存空间内,拥有独立运行所需的全部资源。

2、线程

        1)程序执行流的最小单元,线程是进程中的一个实体。        

        2)一个进程要想执行任务,必须至少有一条线程,应用程序启动的时候,系统会默认开启一条进程,也就是主线程。

3、进程和线程的关系        

        1)线程是进程的执行单元,进程的所有任务都在线程中执行。        

        2)线程是CPU分配资源和调度的最小单位      

        3)一个程序可以对应多个进程(多进程),一个进程中可有多个线程,但至少要有一条线程。       

主线程是相对于什么而言的

两个进程分别指向同一个地址空间并初始化一个值,分别输出是什么

如何保证线程安全

一个进程有哪些区

拥塞控制

进程间通信的方式,Binder机制

多线程

各种队列

线程锁

iOS中有哪些锁

1、NSLock

2、@synchronsized代码块

3、dispatch_semaphore_signal

4、NSCondition

5、NSRecursiveLock(递归锁)、NSDistributedLock(分布锁)、pthread_mutex_t:同步锁、

NSThread、GCD、NSOperation

线程同步的方式

自旋锁和互斥锁的区别

线程死锁的四个条件



未完待续!

你可能感兴趣的:(iOS - 大厂面试题)