美文网首页
10.7 多线程 NSThread 同步, 异步

10.7 多线程 NSThread 同步, 异步

作者: jayck | 来源:发表于2016-10-07 18:52 被阅读71次

多线程的三大类API

NSThread,NSOperationQueue,GCD

多线程本身不是好理解,光是思想就不简单
timeSlice 每个任务都有时间片
N个线程间的通信,就是多线程
不可重入函数:在执行的时候别的函数不可以进来
比如a++,第一个线程执行到一半,另一个线程又来加一次,就变成加了两次了,结果可能就不一样了
可重入函数则反之

NSThread
[NSThread detachNewThreadSelector:@selector(demoFunc) toTarget:selfwithObject:nil]
示例:Button不用等下载完就有响应
- (IBAction)buttonClicked:(UIButton *)sender {

    //用一个新的线程去执行demoFunc4的下载,Button点下去,不用等下载好就有响应。
    [NSThread detachNewThreadSelector:@selector(demoFunc4) toTarget:selfwithObject:nil];
   
}

-(void)demoFunc4{

    //下载图片
    NSData *data = [NSData dataWithContentsOfURL:[NSURLURLWithString:@"http://www.3337973.cc/imgall/mjuxu2djfy2diojtfzrw63i/uploads/allimg/140828/3-140RQ34K1.jpg"]];

    //显示图片
    __image.image = [UIImage imageWithData:data];
    
}

主线程只有一个,子线程有多个。几核的CPU和有多少子线程是没关系的。
同步执行:等A执行完才执行B 说的是这个函数
异步执行:不用等A执行完就执行B。 如果里面有3个方法,只要有一个异步方法,3个都会被传染成异步方法

为了保证流畅,主线程能少做事情就少做,但是有些是避免不了的,比如说UI基本都是用主线程来执行。

相关文章

  • 10.7 多线程 NSThread 同步, 异步

    多线程的三大类API NSThread,NSOperationQueue,GCD 多线程本身不是好理解,光是思想就...

  • 多线程相关面试问题

    多线程:GCD、NSOperation、NSThread。 一、GCD 1、同步/异步 和 串行/并发(1)、同步...

  • iOS面试之多线程模块

    多线程 多线程内容如下: GCD NSOperation NSThread 多线程与锁 1.GCD 同步/异步和串...

  • iOS面试 -- 多线程相关

    多线程技术方案 GCD NSOperation NSThread GCD 同步/异步 和串行/并发 dispatc...

  • 多线程

    GCD NSOperation NSThread 多线程与锁 一、GCD 同步、异步 和 串行、并发 dispat...

  • 不可不说的多线程

    关键字:多线程原理,队列(串行并行),任务(同步异步),NSThread,GCD,NSOperation,@syn...

  • iOS开发中的多线程

    iOS开发中的多线程 pthread,NSThread,NSOpertion,GCD的区别 同步和异步,并发和串行...

  • 多线程

    ios中为我们提供了GCD、NSOpration、NSThread 一、GCD多线程与锁GCD 同步异步、串行、并...

  • iOS多线程知识点梳理

    iOS多线程实现方式 pthread NSThread (三种方式创建) GCD 同步&异步针对的主体是任务,以t...

  • iOS 多线程基础

    转自:iOS 多线程基础 - 简书 多线程同步和异步的区别?IOS中如何实现多线程的同步? 异步:可以同时执行多条...

网友评论

      本文标题:10.7 多线程 NSThread 同步, 异步

      本文链接:https://www.haomeiwen.com/subject/xwwyyttx.html