溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

線程是什么?進程是什么?二者有什么區(qū)別和聯(lián)系?

發(fā)布時間:2020-07-29 14:46:55 來源:網(wǎng)絡 閱讀:747 作者:lulun426 欄目:開發(fā)技術

     線程,是進程的一個具體實例.

     程序運行的最小單位,是被系統(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(鑰匙串)

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI