中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

iOS使用多線程提高數據并發訪問 之一

發布時間:2020-06-11 22:03:53 來源:網絡 閱讀:2709 作者:iKingLai 欄目:移動開發

在本章,你會學到:

  • 線程和多線程技術

  • 在iPhone應用中,如何使用鎖來編寫和管理線程

  • 和多線程環境相關的概念

    1)安全性:程序應該產生我們預期的結果

    2)活躍性:預期的結果必須最終在某個時間點上產生

    3)性能:預期的結果必須較快的產生

  • 知道什么時候使用線程

  • 了解線程和蘋果內置的其他解決方案的不同


如今的計算設備已經有越來越多的處理器。iPhone也不例外;在不久的將來,iPhone將會有許多處理器;事實上,Android有些設備已經擁有雙核處理器。因此,我們需要知道如何在多處理器上開發程序。這僅僅是我們學習多線程的一個原因。線程這種渠道能夠幫助你解決一些其他問題,比如異步代碼,文件和網絡IO,或者減緩計算過程。


線程和多線程編程


簡單來說,線程是操作系統運行的一序列命令。不同的線程能夠運行在相同的處理器或不同的處理器上,這取決于操作系統,如圖6-1。


正常情況下,操作系統打開一個新的應用程序時,只有一個線程 --  換句話說,從頭到尾只有一個命令集。多線程是指,系統有多于一個的命令集在并發情況下運行。在一個多處理器系統中,每一個線程可以在每一個處理器上同時執行,如圖6-1 。


iOS使用多線程提高數據并發訪問 之一


但是,在單個處理器系統中,CPU在切到其他線程之前,會在一個線程中處理某些命令。在圖6-2中,在進入線程2之前,CPU在線程1中執行一些命令。然后在進入線程3之前,CPU在線程2中執行命令。


沿著處理的路徑,不同的線程可以從不同的對象中調用不同的方法,如圖6-3。線程1和線程2可以同時使用相同的對象調用相同的方法,線程1和線程2也可以調用Object 1的 Method 1和Object 3的Method 3。但是,當線程1調用Object 2的Method 2,線程2調用Object 4的Method 4的時候,線程1和線程2可以調用不同的對象和方法。


iOS使用多線程提高數據并發訪問 之一


在同一個應用中使用多線程,有優點也有缺點。下面這個部分將會討論他們。多線程最大的好處是可以將其他任務從main UI中解耦出來,這樣UI就不會阻塞或凍結。


線程術語


下面是一些重要的線程術語:

  • 線程這個術語是用來表示代碼中一個獨立的命令/可執行序列。

  • 線程這個術語是用來表示多線程中的一個正在運行的可執行程序。

  • 線程這個術語是用來表示需要執行的一個抽象的工作。


線程和進程有什么不同,當他們都用來執行并發邏輯?進程在下面這些方面和線程不同:

  • 進程是一個分配單元;它有自己的資源,堆內存和優先級。線程只是一個擁有它自己的棧和程序計算的可執行單元。

  • 一個進程可以包含很多線程,一個線程只能屬于一個進程。

  • 一個線程可以和屬于同一個進程的其他線程共享數據。兩個進程之間不能共享數據;他們通常使用進程間通信來轉移數據。(進程間通信已經超出本章的范圍)

  • 系統必須分配一個特定的資源,進程不能共享這些資源,所以進程被認為是重量級的。然而,線程可以共享資源,所有系統能夠在同一個進程內部創建很多線程。




向AI問一下細節

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

AI

永城市| 松原市| 台湾省| 垦利县| 津市市| 即墨市| 塔河县| 新乐市| 四川省| 泰顺县| 花莲市| 牙克石市| 陕西省| 民丰县| 炉霍县| 嘉兴市| 香格里拉县| 寿光市| 静宁县| 长兴县| 荥经县| 肥乡县| 全椒县| 丹江口市| 沧州市| 锦州市| 淅川县| 随州市| 黔江区| 武夷山市| 昭通市| 新津县| 兴山县| 青阳县| 秦皇岛市| 临朐县| 奉贤区| 永年县| 蓝田县| 肥西县| 彰化市|