進(jìn)程
線程
線程的串行
多線程
多線程的原理
多線程的優(yōu)缺點(diǎn)
- 多線程的優(yōu)點(diǎn)
- 能適當(dāng)提高程序的執(zhí)行效率
- 能適當(dāng)提高資源利用率(CPU趟脂、內(nèi)存利用率)
- 多線程的缺點(diǎn)
- 創(chuàng)建線程是有開銷的堂鲜,iOS下主要成本包括:內(nèi)核數(shù)據(jù)結(jié)構(gòu)(大約1KB)掀鹅、椘只玻空間(子線程512KB、主線程1MB掀宋,也可以使用-setStackSize:設(shè)置深纲,但必須是4K的倍數(shù),而且最小是16K)劲妙,創(chuàng)建線程大約需要90毫秒的創(chuàng)建時(shí)間
- 如果開啟大量的線程湃鹊,會(huì)降低程序的性能
- 線程越多,CPU在調(diào)度線程上的開銷就越大
- 程序設(shè)計(jì)更加復(fù)雜:比如線程之間的通信镣奋、多線程的數(shù)據(jù)共享
多線程在iOS開發(fā)中的應(yīng)用
- 什么是主線程
- 一個(gè)iOS程序運(yùn)行后币呵,默認(rèn)會(huì)開啟1條線程,稱為“主線程”或“UI線程”
- 主線程的主要作用
- 顯示\刷新UI界面
- 處理UI事件(比如點(diǎn)擊事件侨颈、滾動(dòng)事件余赢、拖拽事件等)
- 主線程的使用注意
- 別將比較耗時(shí)的操作放到主線程中
- 耗時(shí)操作會(huì)卡住主線程,嚴(yán)重影響UI的流暢度哈垢,給用戶一種“卡”的壞體驗(yàn)