您好,登錄后才能下訂單哦!
線程,是進程的一個具體實例.
程序運行的最小單位,是被系統(tǒng)獨立調(diào)度和CPU的基本運行單元.
進程是操作系統(tǒng)中可以并行工作的基本單元。
一個應用程序有一個進程,一個進程中至少有一個線程.
進程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。
進程有獨立的地址空間,一個進程崩潰后,在保護模式下不會對其它進程產(chǎn)生影響,而線程只是一個進程中的不同執(zhí)行路徑。
線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較大,效率要差一些。
但對于一些要求同時進行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進程
2.談談你對多線程開發(fā)的理解?ios中有幾種實現(xiàn)多線程的方法?
在一個進程中有多個線程共同存在,每個線程執(zhí)行各自的任務,相互之間不會干擾,一個線程可以創(chuàng)建或者撤銷其他的線程.
讓一個進程可以同時執(zhí)行很多任務.這就減少了等待時間,提高了進程的運行效率.但是多線程會耗費資源,并且由于一個線程死掉會造成整個進程死掉.多線程也容易造成安全性問題.
有三種
第一種,使用@synchronized(self)
第二種,使用GCD
第三種,使用NSOperationQueue
3.線程同步和異步的區(qū)別?IOS中如何實現(xiàn)多線程的同步?
線程同步,是指多個線程同時操作或者說訪問一個資源(數(shù)據(jù))。這時候需要對數(shù)據(jù)添加保護,這個保護就是線程的同步。
特點:等待資源訪問結束,浪費時間。效率低,串行執(zhí)行任務。
線程異步:訪問資源時,在空閑等待的是時候,同時訪問其他資源,實現(xiàn)多線程機制,并行執(zhí)行任務。
實現(xiàn)多線程同步:
使用GCD的主隊列。使用NSOperationQueue ,把最大線程數(shù)設為1
用GCD中的串行隊列來解釋多線程的同步,也就是隊列中得任務為串行.他們各自相鄰的任務有依賴性,如果任務1不完成,那么任務2就不會開始,這就是同步。
4.獲取一臺設備唯一標識的方法有哪些?
1.UDID
2.UUID
3.MAC ADDRESS
4.OPEN UDID
5.廣告標示符
6.Vindor 標示符
iOS7之后用得是keychain(鑰匙串)
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。