1. Cocoa中的 NSRunLoop类并不是线程安全的?[A]
A.正确 B.错误
2. RunLoop的管理并不完全是自动的?[A]
A.正确 B.错误
3. RunLoop同时也负责 autorelease pool的创建和释放?[A]
A.正确 B.错误
4.每个线程不仅仅在创建的过程中需要耗费时间,同时它也会占用一定内核的内存空间和应用程序的内存空间?[A]
A.正确 B.错误
5在iOS中,主线程的栈空间大小是可以修改的?[B]
A.正确 B.错误
6.iOS应用程序子线程的栈空间大小,会在线程的使用过程中逐渐增加?[A]
A.正确 B.错误
7.子线程允许分配的栈空间大小,必须为4KB的整数倍?[A]
A.正确 B.错误
8.线程的优先级属性 threadPriority是一个0.0~1.0之间的浮点数,那么1.0表示最高的优先级?[A]
A.正确 B.错误
9.线程的默认的优先级是0.5?[A]
A.正确 B.错误
10.优先级较高的线程,一定比优先级较低的线程先执行?[B]
A.正确 B.错误
11.ios应用程序的每条线程,都有唯一的 Runloop对象与之对应?[A]
A.正确 B.错误
12.子线程的 Runloop需要手动创建?[A]
A.正确 B.错误
13.主线程的 Runloop是自动创建并启动的?[A]
A.正确 B.错误
14. currentRunLoop是延迟加载的,只创建一次?[A]
A.正确 B.错误
15.使用 Thread创建的线程,将共享同一应用程序的部分内存空间,它们拥有对数据相同的访问权限?[A]
A.正确 B.错误
16.为了协调多个线程对同一数据的访问,通常的做法是在访问之前加锁,加锁会导致一定的性能开销吗?[B]
A.不会 B.会
17.当一个Lock对象成功调用lock方法后,在其调用 unlock方法之前,任何线程都不能再对此Lock对象加锁?[A]
A.正确 B.错误
18. ConditionLock是一种带有条件的锁,可以根据条件对线程进行加锁?[A]
A.正确 B.错误
19.也就是说一个线程可以对一个 Recursive对象多次调用lock,只要解锁时调用相同次数的 unlock方法便可。以上是Recursivelock的特征吗?[B]
A.不是 B.是
20.因为线程是消耗系统资源的,所以需要控制线程的并发数,以避免系统变慢?[A]
A.是 B.不是
21.由于GCD基于工作单元而非像Thread那样基于运算,所以GCD可以控制诸如等待任务结束、监视文件描述符、周期执行代码以及工作挂起等任务?[A]
A.正确 B.错误
22.GCD的 dispatch queue调度队列可以是并发的,也可以是串行的?[A]
A.正确 B.错误
23. dispatch_semaphore是GCD用来同步的一种方式吗?[A]
A.是 B.不是
24. NSRecursiveLock是一个递归锁,这个锁可以被同一线程多次请求,而不会引起死锁吗?[A]
A.是 B.不是
25.请求加锁失败的话, OSSpinLock会一直轮询,等待时会消耗大量CPU资源,所以 OSSpinLock不适用于较长时间的任务?[A]
A.正确 B.错误
26. NSLock请求加锁失败的话,会先轮询,但一秒过后便会使线程进λ waiting状态,等待唤醒。以上说法正确吗?[A]
A.正确 B.错误
27. pthread_mutex是基于0C语言的多线程加互斥锁的方式吗?[B]
A.是 B.不是
28.下面方法中,哪一个方法没有创建新的线程?[D]
A. +(void)detachNewThreadSelector: (SEL) selector to Target: (id)target withObject: (id )argument;
B. -(id)initWithTarget: (id ) target selector: (SEL)selector object: (id )argument;
C. -(void)performSelectorBackground: (SEL)aSelector withObject: (id)arg;
D. -(void)performSelectorOnMainThread: (SEL)aSelector withObject: (id)arg waitUntilDone: (BOOL)wait;
29下列技术不属于多线程的是:[A]
A. Block B. Thread C. Operation D.GCD
30.线程和进程的区别不正确的是:[A]
A.进程和线程都是由操作系统所体会的程序运行的基本单元
B.线程之间有单独的地址空间
C.进程和线程的主要差别在于它们是不同的操作系统资源管理方式
D.线程有自己的堆栈和局部变量
31.对于 runloop的理解不正确的是:[C]
A.每一个线程都有其对应的 Runloop
B.默认非主线程的 Runloop是没有运行的
C.在一个单独的线程中没有必要去启用 Runloop
D.可以将 NSTimer添加到 runloop中
32.以下多线程对int型变量x的操作,哪个不需要进行同步:[D]
A.x=y B.x++ C.++x D.x=1
33.多线程中栈与堆是公有的还是私有的:[C]
A.栈公有,堆私有 B.栈公有,堆公有 C.栈私有,堆公有 D.栈私有,堆私有
34.下面关于线程管理错误的是:[B]
A.GCD所用的开销要比 NSThread大 B 以在子线程中修改UI元素
C. NSOperationQueue是比 NSThread更高层的封装 D.GCD可以根据不同优先级分配线程
35.Object C中的线程下面描述不正确的是:[B]
A.使用 NSThread创建、使用GCD的 dispatch
B.直接使用 NSOperation,然后将其加入 NSOperationQueue
C.在主线程执行代码,方法是 performSelectorOnMainThread,
D.如果想延时执行代码可以用 performSelector:on Thread:withObject: waitUntidone:
36.对 NSOperation Queue理解不正确的是:[D]
A.存放 NSOperation的集合类 B.可以设置最大并发数
C.放进去的线程会自动执行 D.用户需要管理放进去的线程执行顺序
37.在iOS中,主线程的栈空间大小为:[A]
A. IMB B. 4MB C. 8MB D. 32MB
38.在iOS中,应用程序子线程的默认栈空间大小为:[B]
A.256 KB B. 512 KB C. 1 MB D. 4 MB
39.iOS子线程允许分配的最小栈空间是:[C]
A.4 KB B.8KB C.16 KB D. 32 KB
40.在线程自创建至消亡的整个生命周期中包含多个状态,各状态的顺序是:[B]
A.创建状态就绪状态阻塞状态运行状态消亡状态
B.创建状态就绪状态运行状态阻塞状态消亡状态
C.就绪状态创建状态运行状态阻塞状态消亡状态
D.就绪状态创建状态阻塞状态运行状态消亡状态
41.子线程的 RunLoop,当需要手动创建,调用以下哪个方法来启动?[单D]
A. start B. fire() C.new() D.run()
42.为了在同一个时间点內只执行一个线程,且当前一个线程结束后才执行第二个线程,需要将队列的maxConcurrentOperationCount设置为:[B]
A. 0 B. 1 C.2 D.10
43. Grand Central Dispatch(GCD)是由 Apple公司在哪个iOs版本时,推出的一个多核编程的解决方案。[A]
A.iOS 4.0 B.iOS 5.0 C.iOS 6.0 D.iOS 7.0
44.GCD的AP很大程度上是和以下唧种技术配合使用的?[B]
A. delegate B. block C.kvo D. kvc
45. Thread多线程技术是基于什么来实现多线程的?[A]
A. Thread线程 B. Queue队列 C. Block闭包 D.Task任务
46. Operation多线程技术是基于什么来实现多线程的?[B]
A. Thread线程 B. Queue队列 C. Block闭包 D.Task任务
47. Grand Central Dispatch多线程技术是基于什么来实现多线程的?[D]
A. Thread线程 B. Queue队列 C. Block闭包 D.Task任务
48. GCD Queue分为哪三种?[[A,B,C]
A. The main queue主队列 B. Global queues全局并发队列
C.用函数 dispatch_queue_create创建的用户队列 D. Default queues默认队列
49.死锁有哪些必要条件?[A,B,C,D]
A.互斥 B.请求保持 C.不可剥夺 D.环路
50.以下哪种方法可以处理死锁?[A,B,C,D]
A.鸵鸟策略 B.预防策 C.避免策略 D.检测与解除死锁
51.以下关于iOS开发中的多线程概念,描述正确的是:[A,B,C,D]
A. Multithreading多线程是指从软件或者硬件上,实现多个线程并发执行的技术
B.具有多线程能力的硬件,因为有硬件的支持,所以能够在同一时间内执行多于一个的线程,进而提升应用程序的整体处理性能
C.多线程能够同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率,从而提高应用程序的效率。
D.进程启动之后,一个最主要的线程被称为主线程,主线程会创建和管理应用程序中所有的UI元素。
52. Thread的创建分为显式和隐式两种类型,其中显式方式有哪两种:[A,D]
A. Thread.delachNewThreadSelector(selector: to Target: with:)
B. object. performSelector(inBackground: with:)
C. object. performSelector(inBackground: afterDelay with:)
D. Thread.init(target: selector: object)
53.iOS提供了哪些类型的线程锁:[A,B,C]
A. Lock B. RecursiveLock C. ConditionLock D. UnLock
54.Cocoa operation相关的类有哪些?[A,C]
A. Operation B. NSLock C. Operation Queue D. NSThread
55.以下关于并发、串行、同步和异步描述正确的是:[A,B,C,D]
A.并发:多个任务同时执行 B.串行:一个任务执行完成后,再执行下一个任务
C.同步:在当前线程中执行任务,不会开启新线程
D.异步:在新的线程中执行任务
56.GCD的 dispatch queue调度队列有以下哪三种类型?[A,B,D]
A. The main queue串行队列 B.Global queues全局队列
C.用户线程队列 D.子线程队列
57. Global queues全局队列是并发队列,它包含哪些优先级?[A,B,C,D]
A.高 B.中 C.低 D.后台
58. Timer定时器有哪两种功能?[A,D]
A.在指定的时间执行指定的任务。 B.在指定的时间范围內执行指定的任务。
C.可以实现推送通知的任务。 D.每隔一段时间执行指定的任务。
59.以下保持线程同步的方式有哪些?[A,B,C,D]
A. @synchronized B. NSLock
C. NSCondition D. pthread_mutex
60. OSSpinLock是一种自旋锁,它有哪三个方法?[A,B,D]
A.加锁 B.尝试加锁 C.尝试解锁 D.解锁