国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - iOS多線程介紹

iOS多線程介紹

2020-04-29 12:01湖南金剛 JAVA教程

這篇文章主要介紹了iOS多線程的相關知識,涉及到對進程,線程等方面的知識講解,本文非常具有參考價值,感興趣的朋友一起學習吧

一、前言部分

最近在面試,重新溫習了一遍多線程,希望加深一遍對于多線程的理解。

1、什么是進程?

1).要了解線程我們必須先了解進程,通俗來講進程就是在系統中運行的一個應用程序。

2).每個線程之間是獨立存在的,分別運行在其專用的且受保護的內存空間中。

3).比如打開QQ或Xcode系統會分別開啟兩個進程 如圖:iOS多線程介紹

4)、我們可以通過"活動監視器"查看Mac系統中所開啟的進程。

2、什么是線程?

1).一個進程要想執行任務必須得有線程,即一個進程至少要有一個線程。

2).線程是進程的基本執行單元,一個進程(程序)的所有任務都是在線程中執行的。

3).比如使用酷狗播放音樂、使用迅雷下載電影都需要在線程中運行 如圖:

3、什么是線程的串行?

iOS多線程介紹

1).一個線程中任務是串行執行的(順序執行)的,也就是說一個線程同一時間內只能執行一個任務。

2).串行執行圖解,比如一個線程下載3個文件(文件A、B、C)

iOS多線程介紹

4、什么是多線程?

1).一個進程中可以開啟多個線程,每個線程可以并發(同時)執行不同的任務。

2).類似關系列舉:進程---->車間;線程---->車間工人

3).多線程圖解,比如同時開啟3個線程分別下載3個文件(文件A、B、C)

iOS多線程介紹

5、多線程原理

1).同一時間CPU只能執行一個線程,只有一個線程在工作(執行)。

2).多線程并發(同時)執行,其實是CPU快速的在多個線程之間調度(切換)。

3).如果CPU調度線程的速度夠快,就會造成多線程并發執行的假象。

4).多線程的缺點:

1、每個線程都會占用一定的內存空間(默認情況下:主線程占用1MB,子線程占用512KB),

如果開啟線程過多會占用大量的內存空間因而造成程序性能降低。

2、線程越多CPU調度線程上的開銷就越大(類似工廠工人越多,工廠開銷也越大)。

3、使程序設計更復雜:比如多線程的數據通信,多線程之間的數據共享。

5).多線程的優點:

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

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

6、什么是主線程?

1).一個iOS程序開啟后默認會開啟一個線程,這個線程被稱為"主線程"或"UI線程"。

2).主線程的主要作用:

1、顯示/刷新UI界面

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

3).主線程注意點:

1、別將耗時的操作放在主線程中,耗時操作放在主線程中會造成程序卡頓的問題。

7、耗時操作Demo演示

1)、直接在主線程中運行的Demo

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//獲取當前執行方法和當前線程
//number== 主線程
//number!= 其他線程、子線程、次線程
NSLog(@"%s----%@",__func__,[NSThread currentThread]);
//直接在主線程中運行 造成UI操作卡頓
[self longTimeOperation];
}
#pragma mark-耗時操作
-(void)longTimeOperation{
for (int i=; i<; i++) {
NSLog(@"%d",i);
}
}

2)、在子線程中運行的Demo

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//獲取當前執行方法和當前線程
//number== 主線程
//number!= 其他線程、子線程、次線程
NSLog(@"%s----%@",__func__,[NSThread currentThread]);
//將耗時操作放在子線程中執行,不影響UI的操作
[self performSelectorInBackground:@selector(longTimeOperation) withObject:nil];
}
#pragma mark-耗時操作
-(void)longTimeOperation{
for (int i=; i<; i++) {
NSLog(@"%d",i);
}
}

以上內容是小編給大家介紹的ios多線程知識,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一区二区三区亚洲 | 精品久久久久久久中文字幕 | 永久黄网站色视频免费观看w | 91在线高清观看 | www.国产视频 | 免费簧片 | 龙珠z普通话国语版在线观看 | 欧美一区二区在线观看视频 | 欧美一区二区 | 亚洲91av| 欧美日韩国产一区二区在线观看 | 成人精品网站在线观看 | 天天舔日日干 | 中文字幕一区日韩精品欧美 | 成人国产精品免费观看 | 在线免费黄 | 日韩视频―中文字幕 | 欧美日韩成人网 | 日韩精品在线观看视频 | 日本黄色片免费看 | 一区中文 | 黄色成人在线 | 久久久久久久9 | 99精品国产热久久91蜜凸 | 成人黄色在线观看 | 成人免费视频在线观看 | 久久久99精品免费观看 | 精品三级 | 久久国产精品久久精品国产演员表 | 成人av免费观看 | 一区二区三区在线播放 | 亚洲欧美一区二区三区在线 | 亚洲国产精品福利 | 久久久久久91香蕉国产 | 欧美日在线 | 91精品国产乱码久久久久久 | 国产精品爱久久久久久久 | www.久久99| 亚洲精品久久久久久久久久久久久 | 国产毛片久久 | 国产毛片av |