你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS多線程復雜引見(線程,進程)

iOS多線程復雜引見(線程,進程)

編輯:IOS開發綜合

轉載自 IOS開發多線程篇-多線程復雜引見 作者:文頂頂

一、進程和線程

1.什麼是進程

進程是指在零碎中正在運轉的一個使用順序

每個進程之間是獨立的,每個進程均運轉在其公用且受維護的內存空間內

IOS多線程簡單介紹(線程,進程)

比方同時翻開QQ、Xcode,零碎就會辨別啟動2個進程

經過“活動監視器”可以檢查Mac零碎中所開啟的進程

2.什麼是線程

1個進程要想執行義務,必需得有線程(每1個進程至多要有1條線程)

線程是進程的根本執行單元,一個進程(順序)的一切義務都在線程中執行

比方運用酷狗播放音樂、運用迅雷下載電影,都需求在線程中執行

  IOS多線程簡單介紹(線程,進程)

3.線程的串行

1個線程中義務的執行是串行的

假如要在1個線程中執行多個義務,那麼只能一個一個地按順序執行這些義務

也就是說,在同一時間內,1個線程只能執行1個義務

比方在1個線程中下載3個文件(辨別是文件A、文件B、文件C)

iOS多線程簡單介紹(線程,進程)

二、多線程

1.什麼是多線程

1個進程中可以開啟多條線程,每條線程可以並行(同時)執行不同的義務

進程->車間,線程->車間工人

多線程技術可以進步順序的執行效率

比方同時開啟3條線程辨別下載3個文件(辨別是文件A、文件B、文件C)

iOS多線程簡單介紹(線程,進程)

iOS多線程簡單介紹(線程,進程)

2.多線程的原理

同一時間,CPU只能處置1條線程,只要1條線程在任務(執行)
多線程並發(同時)執行,其實是CPU疾速地在多條線程之間調度(切換)
假如CPU調度線程的時間足夠快,就形成了多線程並發執行的假象
考慮:假如線程十分十分多,會發作什麼狀況?
CPU會在N多線程之間調度,CPU會累死,耗費少量的CPU資源
每條線程被調度執行的頻次會降低(線程的執行效率降低)

3.多線程的優缺陷

多線程的優點

能適當進步順序的執行效率

能適當進步資源應用率(CPU、內存應用率)

多線程的缺陷

開啟線程需求占用一定的內存空間(默許狀況下,主線程占用1M,子線程占用512KB),假如開啟少量的線程,會占用少量的內存空間,降低順序的功能

線程越多,CPU在調度線程上的開支就越大

順序設計愈加復雜:比方線程之間的通訊、多線程的數據共享

4.多線程在iOS開發中的使用

主線程:一個iOS順序運轉後,默許會開啟1條線程,稱為“主線程”或“UI線程”

主線程的次要作用

顯示\刷新UI界面

處置UI事情(比方點擊事情、滾動事情、拖拽事情等)

主線程的運用留意:別將比擬耗時的操作放到主線程中。

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

5.代碼示例

iOS多線程簡單介紹(線程,進程)

iOS多線程簡單介紹(線程,進程)

 1 //
 2 //  YYViewController.m
 3 //  01-阻塞主線程
 4 //
 5 //  Created by apple on 14-6-23.
 6 //  Copyright (c) 2014年 itcase. All rights reserved.
 7 //
 8 
 9 #import "YYViewController.h"
10 
11 @interface YYViewController ()
12 - (IBAction)btnClick;
13 @end
14 
15 
16 @implementation YYViewController
17 
18 
19 - (void)viewDidLoad
20 {
21     [super viewDidLoad];
22 }
23 
24 
25 //按鈕的點擊事情
26 - (IBAction)btnClick {
27     //1.獲取以後線程
28     NSThread *current=[NSThread currentThread];
29     //2.運用for循環執行一些耗時操作
30     for (int i=0; i<10000; i++) {
31         //3.輸入線程
32         NSLog(@"btnClick---%d---%@",i,current);
33     }
34 }
35 
36 @end
iOS多線程簡單介紹(線程,進程)

執行效果:

iOS多線程簡單介紹(線程,進程)

闡明:當點擊執行的時分,textView點擊無呼應。

iOS多線程簡單介紹(線程,進程)

執行剖析:等候主線程串行執行。

iOS多線程簡單介紹(線程,進程)

開啟子線程。

iOS多線程簡單介紹(線程,進程)




【iOS多線程復雜引見(線程,進程)】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved