objective-c代码块多并发

1.代码块对象是对C语言中函数的扩展,除了函数中的代码,代码块还包含有变量绑定,代码块有时也被称为闭包

2.代码块包含两种绑定类型,自动绑定使用的是栈空间,托管绑定使用的是对空间

3.代码块不属于ansi的c语言标准

4.代码块特征如下 1.返回类型可以手动声明也可以编译器自动推导,具有指定类型的参数列表 ,拥有名称,代码块的实例如下

void (^代码块名称)(参数类型 参数);

5.代码块的实现如下

void (^代码块名称)(参数类型 参数) = ^代码块名称

{

代码块实现

}

6.代码块只有在定义的时候才需要^符号,在使用的时候可以当成一般函数来使用

7.代码块可以访问与他同时创建的有效变量

8.使用typedef关键字可以简化代码块定义

typedef double (^代码块名)(参数列表)

然后就可以 代码块名 代码块实例 = ^(参数列表){实现}

9.代码块可以访问函数用到的标准类型的变量,包括本地变量,全局变量,参数变量和_block变量,代码块内部的本地变量

10.本地变量被代码块获取是作为常量被获取的,也就是说不能修改值,要是想修改值的话,必须将他们声明为可修改的_block

11.部分变量不能被声明为block的,包括长度可变的数组,包含长度可变数组的结构体

12.苹果引入了GCD技术实现系统级别的线程管理

13.@synchronization可以对代码进行临界区保护

14.如果定义了一个属性没有指定关键字nonatomic,编译器自动生成的getset方法是互斥的,可以使用@nonatomic关键字指定互斥级别

15.想让一段代码在后台执行可以使用NSObject的performSelectorInBackground:withObject方法

16.在后台执行的方法不能带返回值,要么只有一个参数,要么没有参数

17.oc的调度队列分为三种,分别是连续队列,并发队列,主队列,连续队列按照fifo原则进行,并发队列按照优先级执行,但是一次运行的任务量是不确定的,可以指定并发队列的三个优先级分别是high low default,如果想获得优先级,使用dispatch_get_global_queue方法,得到的结果分别是DISPATCH_QUEUE_PROORITY_HIGH DISPATCH_QUEUE_PROORITY_LOW DISPATCH_QUEUE_PROORITY_DEFAULT

18.获取当前队列 dispatch_get_current_queue

19.队列的调度最好使用的是代码块

20.关于多线程的事情后期补充

Objective-c学习笔记3的更多相关文章

  1. Objective -C学习笔记之字典

    //字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...

  2. Objective -C学习笔记 之copy(复制)

    //自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...

  3. objc_msgSend消息传递学习笔记 – 消息转发

    该文是 objc_msgSend消息传递学习笔记 – 对象方法消息传递流程 的基础上继续探究源码,请先阅读上文. 消息转发机制(message forwarding) Objective-C 在调用对 ...

  4. ufldl学习笔记和编程作业:Softmax Regression(softmax回报)

    ufldl学习笔记与编程作业:Softmax Regression(softmax回归) ufldl出了新教程.感觉比之前的好,从基础讲起.系统清晰,又有编程实践. 在deep learning高质量 ...

  5. ESP32学习笔记(一) 环境搭建与下载

    ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...

  6. LDA主题模型学习笔记5:C源代码理解

    1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Lat ...

  7. 深度学习笔记(七)SSD 论文阅读笔记简化

    一. 算法概述 本文提出的SSD算法是一种直接预测目标类别和bounding box的多目标检测算法.与faster rcnn相比,该算法没有生成 proposal 的过程,这就极大提高了检测速度.针 ...

  8. 深度学习笔记(七)SSD 论文阅读笔记

    一. 算法概述 本文提出的SSD算法是一种直接预测目标类别和bounding box的多目标检测算法.与faster rcnn相比,该算法没有生成 proposal 的过程,这就极大提高了检测速度.针 ...

  9. ufldl学习笔记与编程作业:Softmax Regression(vectorization加速)

    ufldl学习笔记与编程作业:Softmax Regression(vectorization加速) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learn ...

  10. ufldl学习笔记与编程作业:Logistic Regression(逻辑回归)

    ufldl学习笔记与编程作业:Logistic Regression(逻辑回归) ufldl出了新教程,感觉比之前的好,从基础讲起.系统清晰,又有编程实践. 在deep learning高质量群里面听 ...

随机推荐

  1. 从头到尾彻底解析Hash表算法

    作者:July.wuliming.pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解:第二部分为关于Hash表算法的详细阐述:第三部分为打造一个最快的Hash ...

  2. php fsockopen

    1.PHP fsockopen函数说明: Open Internet or Unix domain socket connection(打开套接字链接) Initiates a socket conn ...

  3. Spark集群搭建中的问题

    参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...

  4. Ubuntu下安装Intellij IDEA和PyCharm

    需要先安装JDK 官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载 ...

  5. NYOJ 925 国王的烦恼

    从最后一天开始往前加边. 同一天的边同时加到图上,加完之后检查集合数量是否和没加之前有变化. 有变化的话,答案就+1. #include<cstdio> #include <iost ...

  6. 激活OFFICE2010时,提示choice.exe不是有效的win32程序

    我在安装office2010破解版时,提示choice.exe不是有效的win32应用程序 删除choice.exe再激活,按提示找到目录删掉这个文件,需要设置显示隐藏文件夹

  7. 在程序中用new ClassPathXmlApplicationContext()的注意事项

    http://blog.csdn.net/budapest/article/details/38493003

  8. 10、桥接模式(Bridge)

    桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化.桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时 ...

  9. css position relative obsolution

    层级关系为:<div ——————————— position:relative; 不是最近的祖先定位元素,不是参照物<div—————————-没有设置为定位元素,不是参照物<di ...

  10. vm选项大全

    http://hllvm.group.iteye.com/group/topic/27945 java -XX:后边的总记不住 vm选项大全 http://www.oracle.com/technet ...