iOS開發多線程篇—多線程簡單介紹(筆記)

實際中應用:主線程只考慮

    顯示\刷新UI界面

    處理UI事件(比如點擊事件、滾動事件、拖拽事件等)


    子線程處理:數據加載或者(耗費時間較長的操作)

多線程的主要目的:

    線程併發分享 CPU 運算資源

    能適當提高程序的執行效率

    能適當提高資源利用率(CPU、內存利用率)

    解決:耗時操作會卡住主線程,嚴重影響UI的流暢度,給用戶一種“卡”的壞體驗

關於當前:cpu每次只執行一個線程(評論中指出多核的問題)進行查找

在百度知道上看到這麼一條答案:

1、在超線程技術的情況下,單核和多核cpu處理併發進程都是並行處理的,但單核並行處理的數量遠低於多核。單核比多核更容易在多進程時假死。
2、多核並不止是多幾個運算器,包括一二級緩存也是獨立的。

這篇文章可以看看:https://www.cnblogs.com/hitwhhw09/p/4718404.html

摘自這篇文章的語句:

什麼時候該使用多線程呢?這要分四種情況討論:

a.多核CPU——計算密集型任務。此時要儘量使用多線程,可以提高任務執行效率,例如加密解密,數據壓縮解壓縮(視頻、音頻、普通數據),否則只能使一個核心滿載,而其他核心閒置。

b.單核CPU——計算密集型任務。此時的任務已經把CPU資源100%消耗了,就沒必要也不可能使用多線程來提高計算效率了;相反,如果要做人機交互,最好還是要用多線程,避免用戶沒法對計算機進行操作。

c.單核CPU——IO密集型任務,使用多線程還是爲了人機交互方便,

d.多核CPU——IO密集型任務,這就更不用說了,跟單核時候原因一樣。



4.程序員需要掌握的技巧/技術

(1)減少串行化的代碼用以提高效率。這是廢話。

(2)單一的共享數據分佈化:把一個數據複製很多份,讓不同線程可以同時訪問。

(3)負載均衡,分爲靜態的和動態的兩種。具體的參見有關文獻。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章