• 多线程 ,NSTread、NSOpetation、GCD


    多线程 ,NSTread、NSOpetation、GCD 

    eg :

    多线程 在iOS 中用的很多 ,比如 网络下载的请求 和 sdwebimage 请求等耗时较多的数据处理,多线程就会派上用场,可以防止界面假死,增强用户体验 

    是一个简单的以任务为导向的多线程模型。目的是 为了不懂操作系统,不懂线程的人使用的
    第一种:NSBlockOperation *blockOp1 = [NSBlockOperation blockOperationWithBlock:^{}

    第二种: NSInvocationOperation *op1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(operation1:) object:@"任务1"];

    前两种都要 放入线程池中[_queue addOperation:blockOp1]; 

    第三种:直接向线程池 添加 block 任务  [_queue addOperationWithBlock:^{}

    )

    二、 NSTread  是创建线程的一个通用的类。比如线程创建 ,取消,开始。

    (有三种 创建 方式 :

     //1.创建一个后台线程

    [self performSelectorInBackground:@selector(threadClick1:) withObject:@"线程1"];

    //2.创建线程

    NSThread *thread2 = [[NSThread alloc] initWithTarget:self selector:@selector(threadClick2:) object:@"线程2"];

    thread2.name = @"thread2";

    //这种创建方式需要手动启动线程

    [thread2 start];

    //3/创建子线程 这种方式一旦创建 立即启动

    [NSThread detachNewThreadSelector:@selector(threadClick3:) toTarget:self withObject:@"线程3"];

     

    [thread cancel]; cancel 给 thread表示的线程发送一个取消信号,thread线程 就会接收到,接收到之后 需要thread表示的线程   自己结束(自己判断是否需要结束)

    三、GCD 

    是一个带block 的线程模块 

    GCD 有三种 队列类型 :

    The main queue :与主线程功能相同 。可以调用 dispatch_get_main_queue( )获得 。是串行队列 

    dispatch_async(dispatch_get_main_queue(), ^{})

    Global queues :全局队列 是并发队列。进程中有三种全局队列 高,中(默认),低 三个优先级队列 。可以调用 dispatch_get_global_queue( )传入优先级 访问队列

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{});

    用户队列:dispatch_queue_create 创建的队列  这些队列是串行 队列

    dispatch_queue_t queue = dispatch_queue_create("com.1505", NULL);

    dispatch_async(queue, ^{});

  • 相关阅读:
    Linux下MySQL/MariaDB Galera集群搭建过程
    Linux下Nginx+Tomcat负载均衡和动静分离配置要点
    快速部署tomcat项目的Shell脚本
    利用缓存实现APP端与服务器接口交互的Session控制
    基于xml的Spring多数据源配置和使用
    基于注解的Spring多数据源配置和使用
    MySQL 开启事件 使用定时器调用存储过程
    MyBatis绑定错误--BindingException:Invalid bound statement (not found)
    micropython1.16官方文档转PDF
    dokuwiki使用随笔
  • 原文地址:https://www.cnblogs.com/PengFei-N/p/4703202.html
Copyright © 2020-2023  润新知