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