iOS 面试题 一共分为
口试题
和面试题
两局部口试题
一共分为 10 个 总共 613 题面试题
一共 400 题
口试题 一个 10 个系列 别离为
①(语法篇) 共 147 题 已更新
②(常识篇) 共 72 题 已更新
③(界面篇) 共 83 题 已更新
④(iOS 篇) 共 52 题 已更新
⑤(操作篇) 共 68 题 已更新
⑥(数据结构篇) 共 23 题 已更新
⑦(多线程篇) 共 60 题 已更新
⑧(网络篇) 共 22 题 已更新
⑨(多媒体篇) 共 59 题 已更新
⑩(平安篇) 共 27 题 已更新
面试题
一共分为 3 个 总共 400 题
⑪(面试篇 1/3) 共 127 题 已更新
⑪(面试篇 2/3) 共 137 题 已更新
⑪(面试篇 3/3) 共 136 题 已更新
@TOC
口试题 613 题
⭐️⑦、口试题 - 多线程篇(60 题)
1. 上面办法中, 哪个 办法
没有创立新的 线程
?:[单选题]
- [] A、+(void)datechNewThreadSelector(SEL)selector,toTarget:(id)target withObject:(id)argument;
- [] B、- (id)initWithTarger(id)target selector:(SEL)selector object:(id)argument;
- [] C、- (void)preformSelectorInBackground(SEL)selector withObject:(id)arg;
- [x] D、- (void)preformSelectorInOnMianThread(SEL)selector withObject:(id)arg waitUntilDone:(BOOL)wait;
2.Cocoa
中的 NSRunLoop 类
并不是 线程平安
的?:[判断题]
- [x] A、正确
- [] B、谬误
3.Run Loop
的 治理
并不齐全是 主动
的:[判断题]
- [x] A、正确
- [] B、谬误
4.Run Loop
同时也负责 autorelease pool
的 创立
和开释
?:[判断题]
- [x] A、正确
- [] B、谬误
5.GCD Queue
分为哪三种?:[多选题]
- [x] A、The main queue 主队列
- [x] B、Global queues 全局并发队列
- [x] C、用函数 dispatch_queue_create 创立的用户队列
- [] D、Default queues 默认队列
6.死锁
有哪些 必要
条件?:[多选题]
- [x] A、互斥
- [x] B、申请放弃
- [x] C、不可剥夺
- [x] D、环路
7. 以下哪种办法能够 解决死锁
:[多选题]
- [x] A、鸵鸟策略
- [x] B、预防策略
- [x] C、防止策略
- [x] D、检测与解除死锁
8. 下列技术不属于 多线程
的是:[单选题]
- [x] A、Block
- [] B、Thread
- [] C、Operation
- [] D、GCD
9.线程
和过程
的区别不正确的是:[单选题]
- [x] A、过程和线程都是由操作系统所领会的程序运行的根本单元
- [] B、线程之间有独自的地址空间
- [] C、过程和线程的次要差异在于它们是不同的操作系统资源管理形式
- [] D、线程有本人的堆栈和局部变量
10. 对于 runloop
的了解不正确的是:[单选题]
- [] A、每一个线程都有其对应的 RunLoop
- [] B、默认非主线程的 RunLoop 是没有运行的
- [x] C、在一个独自的线程中没必要去启用 RunLoop
- [] D、能够将 NSTimer 增加到 RunLoop 中
11. 以下 多线程
对 int 型变量 x 的操作, 哪个 不须要
进行同步:[单选题]
- [] A、x=y
- [] B、x++
- [] C、++x
- [x] D、x=1
12.多线程
中栈
与堆
是私有
的还是 公有
的:[单选题]
- [] A、栈私有,堆公有
- [] B、栈私有,堆私有
- [x] C、栈公有,堆私有
- [] D、栈公有,堆公有
13. 上面对于 线程治理
谬误的是:[单选题]
- [] A、GCD 所用的开销要比 NSTread 大
- [x] B、能够在子线程中批改 UI 元素
- [] C、NSOperationQueue 是比 NSThread 更高层的封装
- [] D、GCD 能够依据不同优先级调配线程
14.Object C 的 线程
上面形容不正确的是:[单选题]
- [] A、应用 NSThread 创立、应用 GCD 的 dispatch
- [x] B、间接应用 NSOPeration, 而后将其退出 NSOPerationQueue
- [] C、在主线程执行代码, 办法是 performSelectorOnMainThread,
- [] D、如果想延时执行代码能够用 performSelector:OnThread:withObject:waitUnitlDone;
15. 对 NSOperationQueue
了解不正确的是:[单选题]
- [] A、寄存 NSOperation 的汇合类
- [] B、能够设置最大并发数
- [] C、放进去的线程会主动执行
- [x] D、用户须要治理放进去的线程执行程序
16. 以下对于 iOS 开发
中多线程
概念, 形容正确的是:[多选题]
- [x] A、Multthreadng 多线程是指从软件或硬件上, 试下多个线程并发执行的技术。
- [x] B、具备多线程能力的硬件,因为有硬件的反对。所以可能在同一时间内执行多于一个的线程,进而晋升应用程序的整体解决性能。
- [x] C、多线程可能同步实现多项工作,不是为了进步运行效率,而是为了进步资源应用效率,从而进步应用程序的效率。
- [x] D、过程启动之后,一个最次要的线程被称为主线程,主线程会创立和管理应用程序中所有的 UI 元素
17. 每个 线程
不仅仅在 创立
的过程中 须要消耗工夫
, 同时它也会 占用
肯定 内核的内存空间
和应用程序的内存空间
。:[判断题]
- [x] A、正确
- [] B、谬误
18. 在 iOS 中,主线程
的栈空间大小
为:[单选题]
- [x] A、1MB
- [] B、4MB
- [] C、8MB
- [] D、32MB
19. 在 iOS 中,主线程
的栈空间大小
是能够 批改
的?:[判断题]
- [] A、正确
- [x] B、谬误
20. 在 iOS 中, 应用程序 子线程
的默认栈空间大小
为?:[单选题]
- [] A、256 KB
- [x] B、512 KB
- [] C、1 MB
- [] D、4 MB
21.iOS 应用程序 子线程
的栈 空间大小
, 会在 线程
的应用过程
逐步减少
?:[判断题]
- [x] A、正确
- [] B、谬误
22.iOS子线程
运行 调配的最小栈空间
是?:[单选题]
- [] A、4 KB
- [] B、8 KB
- [x] C、16 MB
- [] D、32 MB
23.子线程
运行 调配的栈空间大小
,必须为4KB 的整数倍
?:[判断题]
- [x] A、正确
- [] B、谬误
24.线程
的优先级
属于 threadPriority
是一个 0.0~1.0
之间的浮点数, 那么 1.0
示意 最高
的优先级?:[判断题]
- [x] A、正确
- [] B、谬误
25. 线程的 默认的优先级
是0.5
?:[判断题]
- [x] A、正确
- [] B、谬误
26.优先级较高
的线程,肯定
比优先级较低
的线程 先执行
?:[判断题]
- [] A、正确
- x] B、谬误
27. 在 线程
借鉴
至沦亡的
整个生命周期中蕴含多个状态,各状态的程序
是?:[单选题]
- [] A、创立状态、就绪状态、阻塞状态、运行状态、沦亡状态
- [x] B、创立状态、就绪状态、运行状态、阻塞状态、沦亡状态
- [] C、就绪状态、创立状态、运行状态、阻塞状态、沦亡状态
- [] D、就绪状态、创立状态、阻塞状态、运行状态、沦亡状态
28.iOS 应用程序的每条 线程
, 都 有惟一的 RunLoop 对象与之对应
?:[判断题]
- [x] A、正确
- [] B、谬误
29.子线程
的RunLoop
须要 手动创立
?:[判断题]
- [x] A、正确
- [] B、谬误
30.主线程
的RunLoop
是 主动创立并启动的
?:[判断题]
- [x] A、正确
- [] B、谬误
31.子线程
的RunLoop
, 当须要 手动创立
, 调用以下哪个办法来 启动
:[单选题]
- [] A、start()
- [] B、fire()
- [] C、new()
- [x] D、run()
32.currentRunLoop
是 提早加载
的, 只 创立一次
?:[判断题]
- [x] A、正确
- [] B、谬误
33. 应用 Thread
创立的 线程
, 将 共享
同一应用程序的 局部内存空间
, 它们 领有对数据雷同的拜访权限
?:[判断题]
- [x] A、正确
- [] B、谬误
34. 为了协调 多个线
程对 同一数据的拜访
, 通常的做法是拜访之前 加锁
. 加锁会导致肯定的 性能开销
吗?:[判断题]
- [] A、不会
- [x] B、会
35.Thread
的创立分为 显式
和隐式
两种类型,其中 显式形式
有哪两种:[多选题]
- [x] A、Thread.detachNewThreadSelector(selector:toTarger:with:)
- [] B、object.performSelector(inBackground:with:)
- [] C、object.performSelector(inBackground:afterDelay with:)
- [x] D、Thread.init(targer:selector:object:)
36. 当一个 Lock 对象
胜利调用 lock
办法后, 在其调用 unlock
办法之前, 任何线程都 不能
对此 Lock 对象加锁:[判断题]
- [x] A、正确
- [] B、谬误
37.iOS 提供了 哪些类型
的线程锁
:[多选题]
- [x] A、Lock
- [x] B、RecursiveLock
- [x] C、ConditionLock
- [] D、UnLock
38.ConditionLock
是一种 带条件的锁
,能够 依据条件对多线程进行加锁
?:[判断题]
- [x] A、正确
- [] B、谬误
39. 也就是说一个线程能够对一个 Recursive 对象
屡次 调用 lock
, 只有 解锁
时调用 雷同的 unlock
办法便可。以上是 RecursiveLock 的特色
吗?:[判断题]
- [] A、不是
- [x] B、是
40. 因为 线程
是耗费系统资源
的,所以须要 控制线程的并发数
,以防止 零碎变慢
?:[判断题]
- [x] A、是
- [] B、不是
41.Cocoa operation
相干的类有哪些:[多选题]
- [x] A、Operation
- [x] B、NSLock
- [x] C、OperationQueue
- [x] D、NSThread
42. 为了在 同一个工夫点
内只 执行一个线程
, 且以后一个 线程完结后
才执行 第二个
线程, 须要将队列的 maxConcurrentOperationCount
设置为:[单选题]
- [] A、0
- [x] B、1
- [] C、2
- [] D、10
43.Grand Central Dispatch(GCD)
是由 Apple 公司在 哪个 iOS 版本
时, 推出的一个 多核编程的解决方案
:[单选题]
- [x] A、iOS 4.0
- [] B、iOS 5.0
- [] C、iOS 6.0
- [] D、iOS 7.0
44.GCD
的 API
很大水平上是和以下 哪种技术配合应用
的:[单选题]
- [] A、delegate
- [x] B、block
- [] C、kvo
- [] D、kvc
45. 因为 GCD
基于 工作单元
而非像 Thread
那样基于 运算
, 所以GCD
能够 管制
注入期待工作完结
、 监督文件描述符
、 周期执行代码以工作挂起
等工作?:[判断题]
- [x] A、正确
- [] B、谬误
46.GCD
的 dispatch queue
调度队列
能够是 并发
的,也能够是 串行
的?:[判断题]
- [x] A、正确
- [] B、谬误
47. 以下对于 并发
、 串行
、 同步
和异步
形容正确的是:[多选题]
- [x] A、并发:多个工作同时执行
- [x] B、串行:一个工作执行实现后,再执行下一个工作
- [x] C、同步:在以后线程中执行工作,不会开启新线程
- [x] D、异步:在新的线程执行工作
48.GCD
的 dispatch queue
调度队列有以下 哪三种类型
?:[多选题]
- [x] A、The main queues 串行队列
- [x] B、Global queues 全局队列
- [x] C、用户线程队列
- [] D、子线程队列
49.Global queues
全局队列
是并发队列
,它蕴含哪些 优先级
?:[多选题]
- [x] A、高
- [x] B、中
- [x] C、低
- [x] D、后盾
50.Thead
多线程技术
是基于什么来 实现多线程
的?:[单选题]
- [x] A、Thead 线程
- [] B、Queue 队列
- [] C、Block 闭包
- [] D、Task 工作
51.Operation
多线程技术
是基于什么来 实现多线程
的?:[单选题]
- [] A、Thead 线程
- [x] B、Queue 队列
- [] C、Block 闭包
- [] D、Task 工作
52.Grand Cental Dispatch
多线程技术
是基于什么来 实现多线程
的?:[单选题]
- [] A、Thead 线程
- [] B、Queue 队列
- [] C、Block 闭包
- [x] D、Task 工作
53.Timer
定时器
有哪两种性能?:[多选题]
- [x] A、在指定的工夫执行指定的工作。
- [x] B、在指定的工夫范畴内执行指定的工作。
- [] C、能够实现推送告诉的工作。
- [x] D、每隔一段时间执行指定的工作。
54. 以下 放弃线程同步
的形式有哪些?:[多选题]
- [x] A、@synchronized
- [x] B、NSLock
- [x] C、NSCondition
- [x] D、pthread_mutex
55.dispatch_semaphore
是 GCD
用来 同步
一种形式吗?:[判断题]
- [x] A、是
- [x] B、不是
56.NSRecursiveLock
是一个 递归锁
,这个锁能够被 同一个线程屡次申请
, 而 不会引起死锁
吗?:[判断题]
- [x] A、是
- [] B、不是
57.OSSpinLock
是一种 自旋锁
, 它有哪 三种办法
?:[多选题]
- [x] A、加锁
- [x] B、尝试加锁
- [] C、尝试解锁
- [x] D、解锁
58.OSSpinLock
申请加锁失败
的话,OSSpinLock
会始终轮询, 期待时会 耗费大量 CPU 资源
, 所以 OSSpinLock 不适宜较长时间的工作
?:[判断题]
- [x] A、是
- [] B、不是
59.NSLock
申请加锁失败
的话,会先轮询
, 但 一秒
过后便会使 线程进入 waiting 状态
。 期待唤醒
。以上说法正确吗?:[判断题]
- [x] A、正确
- [] B、谬误
60.pthread_mutex
是基于 OC 语言
的多线程
加互斥锁的形式
吗?:[判断题]
- [] A、是
- [x] B、不是