網絡多線程01

一個進程包括一個或者多個線程

進程:正在運行的程序
線程:最基本的執行單元

多個線程優點在於:提高執行效率,適當提高資源利用率
缺點:線程太多,佔用CPU,內存
1. > pthread和GCD的區別
pthread和GCD基於C語言之上的,pthread生命週期要程序員管理 ,而後者不用
2. >NSThread和NSOperation的區別
NSThread和NSOperation基於OC語言之上的NSThread生命週期要程序員管理 ,而後者不用
在ios開發中.GCDNSOperation會用的比較多

GCD:不用管週期 多核優化

NSOperation:基於GCD 實現了GCD不好實現的功能


下面簡單說下用法:

生命週期:新建->可調度線程池>運行>阻塞—>就緒—>運行>Death



NSThread: 

1.對象方法

    NSThread *thread = [[NSThread  alloc]initWithTarget:self selector:@selector(task) object:nil];
   
   
//開啓線程
    [thread
start];


2.類方法detach
[NSThread detachNewThreadSelector:@selector(task) toTarget:self withObject:nil];

3.隱式創建 : 用的比較多

[self performSelectorInBackground:@selector(task) withObject:nil];


阻塞 : 當多個異步任務在執行導入過程中,有一個特殊的任務要運行,當他運行的時候,其他任務不能運行(阻塞),運行完成之後居,其他的異步任務恢復併發執行

    dispatch_barrier_async(concurrentQueue, ^{

        [NSThread sleepForTimeInterval:1];

      

    });






發佈了37 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章