亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

iOS多線程開發簡介

發布時間:2020-06-24 04:20:10 來源:網絡 閱讀:432 作者:ymanmeng123 欄目:移動開發
  • 多任務系統調度

     每個應用程序由操作系統分配的短暫的時間片(Timeslice)輪流使用CPU,由于CPU對每個時間片的處理速度非常快,用戶會感覺這些任務好像是同時執行

     并發:多個任務在同一段時間內同時執行,但在一個時間點,一個CPU只能執行一個任務。


  • 進程與線程

進程

     正在運行的程序,負責程序的內存分配

     每一個進程都有自己獨立的虛擬內存空間

線程

     線程是進程中一個獨立執行路徑(控制單元)

     一個進程中至少包含一條線程,即主線程

     可以將耗時的執行路徑(如:網路請求)放在其他線程中執行


進程與線程的區別:

     進程是分配資源的最小單位,線程是處理器調度的最小單位


創建線程的目的:

     為了開啟一條新的執行路徑,運行指定的代碼,與主線程中的代碼實現同時執行。

在iOS應用中,主線程的棧區控件為1M,子線程的棧區為512K



  • 多線程開發簡介

優勢

1)充分發揮多核處理器的優勢,將不同線程任務分配給不同的處理器,真正進入“并行計算”狀態。

2)將耗時的任務分配到其他線程,由主線程負責更新界面,使應用程序運行更加流暢,用戶體驗更好。

3)當硬件處理器的數量增加時,程序運行更快,代碼無需調整


弊端 :新建線程會消耗內存空間和CPU時間,線程太多會降低系統運行性能。


誤區 :

1)多線程技術是為了并發執行多項任務,不會應用程序的執行效率。

2)算法的設計、優化,是提高程序執行效率的方案。


  • iOS開發中用到的線程技術

iOS本質上是Unix系統,可以支持pthread線程庫,但并不推薦

iOS中進行多線程的操作,管理方式是“線程池”

     線程池中的關鍵元素:線程調度中心、任務隊列。

     線程調度中心:負責創建線程、從任務隊列取出并分配任務的執行。

     任務隊列:存儲需要多線程執行的任務。

     對于開發人員,想要實現多線程的任務,只需要向指定的任務隊列放入任務即可,線程調度中心會分配并自動去執行這些任務。


    iOS多線程開發簡介


iOS開發中常用的線程技術包括:

1)NSObject提供了的多線程方法

     建立線程非常方便,但對線程管理很難實現,不推薦

2)GCD —— Grand Central Dispatch  大中心調度

     基于C語言的API,相對底層。使用BLOCK定義任務行為,使用起來簡單靈活

3)NSOperation

     基于GCD實現的一套Objective-C的面向對象接口,且提供了一些GCD不容易實現的特性


  • NSThread

描述了一個線程對象,線程對象不需要我們去創建,而是由任務隊列負責創建及管理

     通過線程對象,可以獲得線程的狀態信息

獲得當前的線程對象:

+ (NSThread *)currentThread

     使用%@打印線程對象,能夠查看到線程的一些信息

線程睡眠方法:

+ (void)sleepForTimeInterval:(NSTimeInterval)ti

當前線程終止方法:

 + (void)exit





向AI問一下細節

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

AI

象州县| 武邑县| 临海市| 丰顺县| 灌南县| 龙海市| 榆林市| 太白县| 兴化市| 静宁县| 广州市| 家居| 荔浦县| 怀安县| 万盛区| 玛纳斯县| 姜堰市| 中牟县| 桑植县| 仲巴县| 延边| 怀远县| 辉县市| 福安市| 梅州市| 云浮市| 临邑县| 兰溪市| 新民市| 探索| 教育| 株洲市| 长春市| 奉节县| 奉新县| 本溪| 大埔县| 同江市| 忻城县| 余江县| 秦安县|