美文网首页
iOS多线程详解(一)

iOS多线程详解(一)

作者: 独角兽ios | 来源:发表于2016-08-03 22:01 被阅读43次

图解:

从前有人说:进程是头,线程是头发!!!

关键两句话:

1.把耗时操作放在子线程。2.把修改UI的代码放在主线程。

在这里主要总结NSThread 、GCD 和 NSOperation的常用用法:

1.NSThread

创建、启动线程

NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];

[thread start];

获得当前线程

NSThread *current = [NSThread currentThread];

线程的名字

- (void)setName:(NSString *)n;

- (NSString *)name;

控制线程状态:

安全隐患解决 – 互斥锁(是一种线程同步技术,即多条线程在同一条线上执行(按顺序地执行任务)

互斥锁使用格式

@synchronized(锁对象) { // 需要锁定的代码  }

注意:锁定1份代码只用1把锁,用多把锁是无效的,一般当线程抢夺同一份资源(修改同一个数据)要加锁

OC在定义属性时有nonatomic和atomic两种选择

atomic:原子属性,为setter方法加锁(默认就是atomic)

nonatomic:非原子属性,不会为setter方法加锁

线程间通信

线程间通信常用方法:

//创建子线程任务并执行

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

//回到主线程方法

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;

- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait;

相关文章

  • iOS多线程相关面试题

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • 多线程之--NSOperation

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS多线程之--NSThread

    iOS多线程demo iOS多线程之--NSThread iOS多线程之--GCD详解 iOS多线程之--NSOp...

  • iOS多线程详解

    iOS多线程详解

  • 线程

    iOS 多线程:『GCD』详尽总结 NSThread详解 IOS 多线程编程 『NSOperation、NSOpe...

  • OC--各种线程锁

    参考:正确使用多线程同步锁@synchronized()iOS中的锁iOS多线程安全详解iOS 常见知识点(三):...

  • iOS 多线程详解

    iOS 多线程详解 Slogan : 可能是最通俗易懂的 iOS多线程 详细解析文章 1. 基础概念 1.1 进程...

  • ios多线程详解

    ios多线程详解 一、前言 在ios中每个进程启动后都会建立一个主线程...

  • ios知识点(9)多线程

    iOS多线程GCD详解 使用GCD iOS多线程中,队列和执行的排列组合结果分析 存在一点小瑕疵,如果同步(syn...

  • GCD的学习笔记(Three)

    本文参考文章链接: 巧谈GCD iOS多线程详解 iOS多线程——你要知道的GCD都在这里(这篇存在着一些错误,慎...

网友评论

      本文标题:iOS多线程详解(一)

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