zoukankan      html  css  js  c++  java
  • 多线程—2

    NSOperation 是一个基类 (抽象类(比如NSObject))不能够直接使用 必须使用它的子类 它默认是在当前线程进行操作

    常与 NSOperationQueue(线程队列)一起使用,在与线程队列一起使用的时候会自动开辟线程进行操作,不用手动操作(*****)。 如果只是单独使用 NSOperation 必须手动启用

    NSOperation 系统提供了两个子类NSInvocationOperation,NSBlockOperation。

    单一使用 Operation 他是同步执行

    NSBlockOperation的操作数大于1的时候会开辟线程去执行操作

    初始化:NSInvocationOperation  

     

    当它单独使用的时候记得使用手动操作:[invocation start];

    invocation实现的方法:

    -(void)act:(id)sender{

        NSLog(@"%@ %@",[NSThread currentThread],sender);

    //,[NSThread currentThread] 是哪一个线程

    }

    初始化NSBlockOperation: 

     

    添加操作

    NSBlockOperation的操作数大于1的时候会开辟线程去执行操作   [blockOperation addExecutionBlock:^{ [self act:@"  添加操作”]; }];

    单独使用同样需要使用手动操作: 

    [blockOperation start];

    NSOperationQueue(线程队列) 管理线程 (默认会开辟线程去执行)

        不用手动去启动线程(****)

    初始化NSOperationQueue

     设置线程队列的 最大并发数 (最多可以有效几个操作 ,同时操作),即:如果 queque.maxConcurrentOperationCount = 0 ,那就只有主线程在执行

        queque.maxConcurrentOperationCount = 2;

        添加操作(当添加操作的时候不需要再去手动操作)

        [queque addOperation:invocation];(当invocation添加到queque时,把之前的[invocation start];注释掉)

  • 相关阅读:
    cocos日记
    Android 开发经验
    vbs自学备份
    C# 如何在winform中嵌入Excel,内嵌Excel,word
    win7 64位在线编辑dsoframer控件的安装和使用配置
    C# 正则表达式 最全的验证类
    在 Range 对象中,Min (14)必须小于或等于 max (-1)。
    winform Form窗体和UserControl用户空间嵌入Panel容器并填充
    C# Winform防止闪频和再次运行
    Base64编码解码
  • 原文地址:https://www.cnblogs.com/popper123/p/4764286.html
Copyright © 2011-2022 走看看