1. Cocoa中的 NSRunLoop類并不是線程安全的?[A]
A.正確????B.錯(cuò)誤
2. RunLoop的管理并不完全是自動(dòng)的?[A]
A.正確????B.錯(cuò)誤
3. RunLoop同時(shí)也負(fù)責(zé) autorelease pool的創(chuàng)建和釋放?[A]?
A.正確????B.錯(cuò)誤
4.每個(gè)線程不僅僅在創(chuàng)建的過程中需要耗費(fèi)時(shí)間,同時(shí)它也會(huì)占用一定內(nèi)核的內(nèi)存空間和應(yīng)用程序的內(nèi)存空間?[A]
A.正確????????B.錯(cuò)誤
5在iOS中,主線程的棧空間大小是可以修改的?[B]
A.正確????B.錯(cuò)誤
6.iOS應(yīng)用程序子線程的棧空間大小,會(huì)在線程的使用過程中逐漸增加?[A]
A.正確????????B.錯(cuò)誤
7.子線程允許分配的椻扇牵空間大小,必須為4KB的整數(shù)倍?[A]
A.正確????????B.錯(cuò)誤
8.線程的優(yōu)先級(jí)屬性 threadPriority是一個(gè)0.0~1.0之間的浮點(diǎn)數(shù),那么1.0表示最高的優(yōu)先級(jí)?[A]
A.正確????B.錯(cuò)誤
9.線程的默認(rèn)的優(yōu)先級(jí)是0.5?[A]
A.正確????????B.錯(cuò)誤
10.優(yōu)先級(jí)較高的線程,一定比優(yōu)先級(jí)較低的線程先執(zhí)行?[B]
A.正確????B.錯(cuò)誤
11.ios應(yīng)用程序的每條線程,都有唯一的 Runloop對(duì)象與之對(duì)應(yīng)?[A]
A.正確????B.錯(cuò)誤
12.子線程的 Runloop需要手動(dòng)創(chuàng)建?[A]
A.正確????B.錯(cuò)誤
13.主線程的 Runloop是自動(dòng)創(chuàng)建并啟動(dòng)的?[A]
A.正確????B.錯(cuò)誤
14. currentRunLoop是延遲加載的,只創(chuàng)建一次?[A]
A.正確????B.錯(cuò)誤
15.使用 Thread創(chuàng)建的線程,將共享同一應(yīng)用程序的部分內(nèi)存空間,它們擁有對(duì)數(shù)據(jù)相同的訪問權(quán)限?[A]
A.正確????B.錯(cuò)誤
16.為了協(xié)調(diào)多個(gè)線程對(duì)同一數(shù)據(jù)的訪問,通常的做法是在訪問之前加鎖,加鎖會(huì)導(dǎo)致一定的性能開銷嗎?[B]
A.不會(huì)????B.會(huì)
17.當(dāng)一個(gè)Lock對(duì)象成功調(diào)用lock方法后,在其調(diào)用 unlock方法之前,任何線程都不能再對(duì)此Lock對(duì)象加鎖?[A]
A.正確????????B.錯(cuò)誤
18. ConditionLock是一種帶有條件的鎖,可以根據(jù)條件對(duì)線程進(jìn)行加鎖?[A]
A.正確????????B.錯(cuò)誤
19.也就是說一個(gè)線程可以對(duì)一個(gè) Recursive對(duì)象多次調(diào)用lock,只要解鎖時(shí)調(diào)用相同次數(shù)的 unlock方法便可赔蒲。以上是Recursivelock的特征嗎?[B]
A.不是????B.是
20.因?yàn)榫€程是消耗系統(tǒng)資源的,所以需要控制線程的并發(fā)數(shù),以避免系統(tǒng)變慢?[A]? ??
A.是????B.不是
21.由于GCD基于工作單元而非像Thread那樣基于運(yùn)算,所以GCD可以控制諸如等待任務(wù)結(jié)束驰坊、監(jiān)視文件描述符循衰、周期執(zhí)行代碼以及工作掛起等任務(wù)?[A]
A.正確????????B.錯(cuò)誤
22.GCD的 dispatch queue調(diào)度隊(duì)列可以是并發(fā)的,也可以是串行的?[A]
A.正確????????B.錯(cuò)誤
23. dispatch_semaphore是GCD用來同步的一種方式嗎?[A]
A.是????????????B.不是
24. NSRecursiveLock是一個(gè)遞歸鎖,這個(gè)鎖可以被同一線程多次請(qǐng)求,而不會(huì)引起死鎖嗎?[A]
A.是????????????B.不是
25.請(qǐng)求加鎖失敗的話, OSSpinLock會(huì)一直輪詢,等待時(shí)會(huì)消耗大量CPU資源,所以 OSSpinLock不適用于較長(zhǎng)時(shí)間的任務(wù)?[A]
A.正確 ? ? ? ? ? ?B.錯(cuò)誤
26. NSLock請(qǐng)求加鎖失敗的話,會(huì)先輪詢,但一秒過后便會(huì)使線程進(jìn)λ waiting狀態(tài),等待喚醒意狠。以上說法正確嗎?[A]
A.正確 ? ? ? ? ? ?B.錯(cuò)誤
27. pthread_mutex是基于0C語(yǔ)言的多線程加互斥鎖的方式嗎?[B]
A.是????B.不是
28.下面方法中,哪一個(gè)方法沒有創(chuàng)建新的線程?[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下列技術(shù)不屬于多線程的是:[A]
A. Block????B. Thread????C. Operation ? ? ? ?D.GCD
30.線程和進(jìn)程的區(qū)別不正確的是:[A]
A.進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元
B.線程之間有單獨(dú)的地址空間
C.進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式
D.線程有自己的堆棧和局部變量
31.對(duì)于 runloop的理解不正確的是:[C]
A.每一個(gè)線程都有其對(duì)應(yīng)的 Runloop
B.默認(rèn)非主線程的 Runloop是沒有運(yùn)行的
C.在一個(gè)單獨(dú)的線程中沒有必要去啟用 Runloop
D.可以將 NSTimer添加到 runloop中
32.以下多線程對(duì)int型變量x的操作,哪個(gè)不需要進(jìn)行同步:[D]
A.x=y????????B.x++????????C.++x????????????D.x=1
33.多線程中棧與堆是公有的還是私有的:[C]
A.棧公有,堆私有????B.棧公有,堆公有????C.棧私有,堆公有????D.棧私有,堆私有
34.下面關(guān)于線程管理錯(cuò)誤的是:[B]
A.GCD所用的開銷要比 NSThread大????B? ? 以在子線程中修改UI元素
C. NSOperationQueue是比 NSThread更高層的封裝????????D.GCD可以根據(jù)不同優(yōu)先級(jí)分配線程
35.Object C中的線程下面描述不正確的是:[B]
A.使用 NSThread創(chuàng)建乡恕、使用GCD的 dispatch
B.直接使用 NSOperation,然后將其加入 NSOperationQueue
C.在主線程執(zhí)行代碼,方法是 performSelectorOnMainThread,
D.如果想延時(shí)執(zhí)行代碼可以用 performSelector:on Thread:withObject: waitUntidone:
36.對(duì) NSOperation Queue理解不正確的是:[D]
A.存放 NSOperation的集合類????????????B.可以設(shè)置最大并發(fā)數(shù)
C.放進(jìn)去的線程會(huì)自動(dòng)執(zhí)行????????????????D.用戶需要管理放進(jìn)去的線程執(zhí)行順序
37.在iOS中,主線程的椝晃裕空間大小為:[A]
A. IMB????????B. ?4MB????????C. 8MB????????D. 32MB
38.在iOS中,應(yīng)用程序子線程的默認(rèn)椂酰空間大小為:[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.在線程自創(chuàng)建至消亡的整個(gè)生命周期中包含多個(gè)狀態(tài),各狀態(tài)的順序是:[B]
A.創(chuàng)建狀態(tài)就緒狀態(tài)阻塞狀態(tài)運(yùn)行狀態(tài)消亡狀態(tài)
B.創(chuàng)建狀態(tài)就緒狀態(tài)運(yùn)行狀態(tài)阻塞狀態(tài)消亡狀態(tài)
C.就緒狀態(tài)創(chuàng)建狀態(tài)運(yùn)行狀態(tài)阻塞狀態(tài)消亡狀態(tài)
D.就緒狀態(tài)創(chuàng)建狀態(tài)阻塞狀態(tài)運(yùn)行狀態(tài)消亡狀態(tài)
41.子線程的 RunLoop,當(dāng)需要手動(dòng)創(chuàng)建,調(diào)用以下哪個(gè)方法來啟動(dòng)?[單D]
A. start????????B. fire() ?????C.new() ? ? ? ?D.run()
42.為了在同一個(gè)時(shí)間點(diǎn)內(nèi)只執(zhí)行一個(gè)線程,且當(dāng)前一個(gè)線程結(jié)束后才執(zhí)行第二個(gè)線程,需要將隊(duì)列的maxConcurrentOperationCount設(shè)置為:[B]
A. 0????????B. 1?????C.2 ? ? ? ?D.10
43. Grand Central Dispatch(GCD)是由 Apple公司在哪個(gè)iOs版本時(shí),推出的一個(gè)多核編程的解決方案芥吟。[A]
A.iOS 4.0????????B.iOS 5.0????????C.iOS 6.0????????D.iOS 7.0
44.GCD的AP很大程度上是和以下唧種技術(shù)配合使用的?[B]
A. delegate????????B. block ? ? ? ?C.kvo???????? ? ?D. kvc
45. Thread多線程技術(shù)是基于什么來實(shí)現(xiàn)多線程的?[A]
A. Thread線程????????B. Queue隊(duì)列????????C. Block閉包????????D.Task任務(wù)
46. Operation多線程技術(shù)是基于什么來實(shí)現(xiàn)多線程的?[B]
A. Thread線程????????B. Queue隊(duì)列????????C. Block閉包????????D.Task任務(wù)
47. Grand Central Dispatch多線程技術(shù)是基于什么來實(shí)現(xiàn)多線程的?[D]
A. Thread線程????????B. Queue隊(duì)列????????C. Block閉包????????D.Task任務(wù)
48. GCD Queue分為哪三種?[[A,B,C]
A. The main queue主隊(duì)列????????????B. Global queues全局并發(fā)隊(duì)列
C.用函數(shù) dispatch_queue_create創(chuàng)建的用戶隊(duì)列????????????D. Default queues默認(rèn)隊(duì)列
49.死鎖有哪些必要條件?[A,B,C,D]
A.互斥????????B.請(qǐng)求保持????????C.不可剝奪????????D.環(huán)路
50.以下哪種方法可以處理死鎖?[A,B,C,D]
A.鴕鳥策略????????B.預(yù)防策????????C.避免策略????????D.檢測(cè)與解除死鎖
51.以下關(guān)于iOS開發(fā)中的多線程概念,描述正確的是:[A,B,C,D]? ??
A. Multithreading多線程是指從軟件或者硬件上,實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù)
B.具有多線程能力的硬件,因?yàn)橛杏布闹С?所以能夠在同一時(shí)間內(nèi)執(zhí)行多于一個(gè)的線程,進(jìn)而提升應(yīng)用程序的整體處理性能
C.多線程能夠同步完成多項(xiàng)任務(wù),不是為了提高運(yùn)行效率,而是為了提高資源使用效率,從而提高應(yīng)用程序的效率侦铜。
D.進(jìn)程啟動(dòng)之后,一個(gè)最主要的線程被稱為主線程,主線程會(huì)創(chuàng)建和管理應(yīng)用程序中所有的UI元素。
52. Thread的創(chuàng)建分為顯式和隱式兩種類型,其中顯式方式有哪兩種:[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相關(guān)的類有哪些?[A,C]
A. Operation????B. NSLock????C. Operation Queue????????D. NSThread
55.以下關(guān)于并發(fā)钟鸵、串行钉稍、同步和異步描述正確的是:[A,B,C,D]
A.并發(fā):多個(gè)任務(wù)同時(shí)執(zhí)行????????B.串行:一個(gè)任務(wù)執(zhí)行完成后,再執(zhí)行下一個(gè)任務(wù)
C.同步:在當(dāng)前線程中執(zhí)行任務(wù),不會(huì)開啟新線程
D.異步:在新的線程中執(zhí)行任務(wù)
56.GCD的 dispatch queue調(diào)度隊(duì)列有以下哪三種類型?[A,B,D]
A. The main queue串行隊(duì)列????????????B.Global queues全局隊(duì)列
C.用戶線程隊(duì)列????????????D.子線程隊(duì)列
57. Global queues全局隊(duì)列是并發(fā)隊(duì)列,它包含哪些優(yōu)先級(jí)?[A,B,C,D]
A.高 ? ? ? ?B.中 ? ? ? ?C.低????????????D.后臺(tái)
58. Timer定時(shí)器有哪兩種功能?[A,D]
A.在指定的時(shí)間執(zhí)行指定的任務(wù)。????????B.在指定的時(shí)間范圍內(nèi)執(zhí)行指定的任務(wù)棺耍。
C.可以實(shí)現(xiàn)推送通知的任務(wù)贡未。????????D.每隔一段時(shí)間執(zhí)行指定的任務(wù)。
59.以下保持線程同步的方式有哪些?[A,B,C,D]
A. @synchronized????????B. NSLock
C. NSCondition????????????D. pthread_mutex
60. OSSpinLock是一種自旋鎖,它有哪三個(gè)方法?[A,B,D]
A.加鎖????????B.嘗試加鎖????????C.嘗試解鎖????????D.解鎖