多线程

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.解锁

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

  • 一、选择题 对以下四种多线程的技术简介错误的是( C )A. pthread是一套通用的多线程API,适用于Uni...
    奋斗的蜗牛阅读 468评论 0 1
  • 简单的整理了一下,多线程的创建方式,它们之间的优缺点,以及在项目中我们在什么样的场景下选择哪一种方式。水平有限,写...
    天遥love阅读 2,326评论 0 8
  • 1. 线程和进程 在了解多线程之前,我们现在熟悉两个概念,线程和进程. 一. 线程 线程:进程的基本执行单元,一个...
    周灬阅读 389评论 0 0
  • iOS中多线程的实现方案 pthread a.特点: 1)一套通用的多线程API 2)适用于Unix\Linux\...
    YinLei阅读 177评论 0 1
  • 1-- 基本概念 01进程 是指在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用...
    牧马人_hlc阅读 349评论 2 7

友情链接更多精彩内容