美文网首页
网路基础篇-多线程

网路基础篇-多线程

作者: nickNameDC | 来源:发表于2016-05-03 15:37 被阅读0次

开启多线程主要的三种方法NSThread、GCD、 NSOperation。

1.NSThread

1> 开线程的几种方式

 先创建,后启动
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
[thread start];
直接启动
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
[self performSelectorInBackground:@selector(run) withObject:nil];

2> 其他用法

NSThread *current = [NSThread currentThread]; //获取当前线程
+ (NSThread *)mainThread; // 获得主线程

3> 线程间通信
performSelectorOnMainThread.....

2.GCD(重点)

1.队列的类型
  • 并发队列
    获得全局的并发队列: dispatch_get_global_queue

  • 串行队列
    a.自己创建 dispatch_queue_create
    b.主队列 dispatch_get_main_queue

2.执行任务的方法类型
  • 同步(sync)执行
  • 异步(async)执行
3.了解队列和方法的配合使用
4.线程间通信
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
   // 执行耗时的异步操作...
   dispatch_async(dispatch_get_main_queue(), ^{
       // 回到主线程,执行UI刷新操作
   });
});
5.其他用法

dispatch_once //只执行一次
dispatch_after //延迟执行
dispatch_group_async\dispatch_group_notify

3.NSOperation

1. 基本使用

NSInvocationOperation
NSBlockOperation

2.NSOperationQueue(重点)
  • 最大并发数设置
  • (void)setMaxConcurrentOperationCount:(NSInteger)cnt;
  • 设置依赖
    [operationB addDependency:operationA]; // 操作B依赖于操作A
3. 自定义Operation(了解基本流程)

相关文章

  • 网路基础篇-多线程

    开启多线程主要的三种方法NSThread、GCD、 NSOperation。 1.NSThread 1> 开线程的...

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

  • Java多线程系列目录(共43篇)-转

    最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。 (一) 基础篇 Java多线程系列--“基础篇”0...

  • Unity C#基础之 多线程的前世今生(下) 扩展篇

    在前面两篇Unity C#基础之 多线程的前世今生(上) 科普篇和Unity C#基础之 多线程的前世今生(中) ...

  • OC底层知识(十一) : 多线程

    一、简介:多线程在之前进行过一篇详细的基础博客 iOS多线程 二、多线程的基础知识回顾 1.1、iOS中的常见多线...

  • 多线程(二)、内置锁synchronized

    前言 在上一篇 多线程(一)、基础概念及notify()和wait()的使用 文章中我们讲了多线程的一些基础概念...

  • 网路编程基础

    网路模型 OSI七层模型采用了分层的结构化技术,共分七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理...

  • 多线程基础篇

    多线程 多线程概念 进程:正在进行中的程序 线程:是进程中一个负责程序执行的控制单元(执行路径)一个进行中可以有多...

  • 多线程基础篇

    基本概念 进程:一个执行单元,PC和移动设备指一个程序或者应用线程:操作系统能进行运算调度的最小单位。是进程的实际...

  • 多线程(四)、Android多线程使用及AsyncTask源码分

    本篇是多线程系列的第四篇,如果对前三篇感兴趣的也可以去看看。多线程(一)、基础概念及notify()和wait()...

网友评论

      本文标题:网路基础篇-多线程

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