『GCD』详解】的更多相关文章

2. GCD 任务和队列 学习 GCD 之前,先来了解 GCD 中两个核心概念:任务和队列. 任务:就是执行操作的意思,换句话说就是你在线程中执行的那段代码.在 GCD 中是放在 block 中的.执行任务有两种方式:同步执行(sync)和异步执行(async).两者的主要区别是:是否等待队列的任务执行结束,以及是否具备开启新线程的能力. 同步执行(sync): 同步添加任务到指定的队列中,在添加的任务执行结束之前,会一直等待,直到队列里面的任务完成之后再继续执行. 只能在当前线程中执行任务,不…
GCD多线程详解 1. 什么是GCD Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,简单来说,GCD就是iOS一套解决多线程的机制,使用GCD能够最大限度简化多线程编程 2. 简单使用GCD /** * 在主线程执行 */ dispatch_async(dispatch_get_main_queue(), ^{ ; }); /** * 在后台线程执行 */ dispatch_async(dispatch_get_global_queue(DISPATCH_QU…
本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法.这大概是史上最详细.清晰的关于 GCD 的详细讲解+总结的文章了.通过本文,您将了解到:1. GCD 简介2. GCD 任务和队列3. GCD 的使用步骤4. GCD 的基本使用(6种不同组合区别)5. GCD 线程间的通信6. GCD 的其他方法(栅栏方法:dispatch_barrier_async.延时执行方法:dispatch_after.一次性代码(只执行一次):dispatch_once.快速迭代方法:dispatch_…
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的命令跟书上显示的格式不太一样.我从网上找了一些ifconfig命令的基本使用教程,粘贴如下. 首先是我自己的一些研究成果,我在自己的ubuntu13.04上运行了 ifconfig -a 得到了下面的结果 raphael@raphael-Aspire-5741G:~$ ifconfig -a eth…
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概述 1.1引言 1.2分层 层次名 功能 备注 应用层 处理特定应用程序细节 Telnet远程登录.FTP文件传输协议.SMTP简单邮件传送协议.SNMP简单网络管理协议 运输层 为两台主机上的应用程序提供端到端的通信 TCP(传输控制协议) 为两台主机提供高可靠性的数据通信 UDP(用户数据报协议…
1. NSOperation.NSOperationQueue 简介 NSOperation.NSOperationQueue 是苹果提供给我们的一套多线程解决方案.实际上 NSOperation.NSOperationQueue 是基于 GCD 更高一层的封装,完全面向对象.但是比 GCD 更简单易用.代码可读性也更高. 为什么要使用 NSOperation.NSOperationQueue? 可添加完成的代码块,在操作完成后执行. 添加操作之间的依赖关系,方便的控制执行顺序. 设定操作执行的…
2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答. 一般来说,如果不能Ping到某台主机,那么就不能Telnet或者FTP到那台主机.反过来,如果不能Telnet到某太主机,那么通常可以用Ping程序来确定问题出在哪里.Ping程序还能测出到这台主机的往返时间,以表明该主机离我们有“多远”…
2013-08-27 15:37:42 6.5 ICMP端口不可达差错 端口不可达报文是ICMP差错报文的一种,它是ICMP不可达报文中的一种,以此来看一看ICMP差错报文中所附加的信息.使用UDP来查看它(第11章). UDP的规则之一是,如果收到一份UDP数据报而目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文.可以用TFTP来强制生成一个端口不可达报文(第15章). 下面通过一个实例来讲解整个过程,例子为用TFTP协议向另一台主机的错误端口发送UDP请求(UDP正确…
2013-08-26 22:50:54 6.4 ICMP时间戳请求与应答 ICMP时间戳请求允许系统向另一个系统查询当前的时间.返回的建议值是自午夜开始计算的毫秒数(协调的统一时间,Coordinated Universal Time, UTC——早期手册上说这是格林尼治).这种ICMP报文的好处是提供毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如Unix的rdate命令)只能提供秒级的分辨率.同样这也有意个缺陷,就是不知道日期. ICMP时间戳请求和应答报文格式如上图,请求端填写发起时…
2013-08-25 13:39:40 第6章 ICMP:Internet控制报文协议 6.1 引言 ICMP经常被认为是IP层的一个组成部分.它传递差错报文以及其他需要注意的信息.ICMP报文同通常被IP层或更高层协议(TCP或UDP)使用.一些ICMP报文把差错报文返回给用户进程.ICMP报文是在IP数据报内部被传输的,如下图: 所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同.下面我们将逐个介绍各种报文格式.类型字段可以有15个不同的值,以描述特定类型的ICMP报文.某些ICM…
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得IP地址. 网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的.无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机相应该无盘系统的IP地址(在RARP应答中). 5.2 RARP的分组格式 上图为AR…
2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”.路由器的功能相当于目的主机的代理,把分组从其他主机转发给它.注:路由器在默认情况下不转发广播报文. 通过上边的例子,我们来说明下ARP代理的工作原理.首先当子网140.252.1(gemini)上的其…
2013-08-24 14:22:46 4.5 ARP举例 首先要介绍一些tcpdump这个强大的Linux命令,它不但可以分析封包的流向,连封包的内容也可以监听,如果数据段没有加过密我们就可以做一些很好玩的事情了.具体的使用方法请大家man tcpdump. sudo tcpdump -i wlan0 -nn 这个命令的使用要拥有root权限,上边的命令可以监听wlan0接口. 4.5.1 一般的例子 telnet svr4 discard 作者在ARP告诉缓存为空的前提下,使用了telnet…
2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议.物理地址就是我们通常说的MAC地址.当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的.设备驱动程序从不检验IP数据报中的目的IP地址.地址解析为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的地址.ARP为IP地…
2013-08-22 12:42:26 3.4 子网寻址 子网编码:不是把IP地址看成由单纯的网络号和主机号组成,我们把主机号再分成子网号和主机号.这样做是因为,A.B类地址为主机号分配了太多的空间,可分别容纳的主机数为224-2和216-2(由于全0和全1的主机号都是无效的,所以我们把总数减2).但是这么多主机肯定用不完,所以我们把这个蛋糕再切小一点.这种新的分配方法由管理员来定. 上图是一个B类网络地址,原本16位主机号被分成了8位子网号和8位主机号,于是就有了254个子网和254台主机.但…
2013-08-21 13:56:23 3.3 IP路由选择 1. IP路由选择有两种情况.(1)如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么IP数据报就直接到达目的主机.(2)如果目的主机和源主机不直接相连,则主机把数据报发往一默认的路由器上,由路由器来转发该数据报. 2. IP层既可以配置成路由器的功能,也可以配置成主机的功能.本质上的区别在于主机从不把数据从一个接口转发到另外一个接口,而路由器则要转发数据报.内含路由器功能的主机应该从不转发数据…
2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图1-4: IP协议提供不可靠.无连接的数据报传送服务: 不可靠(unreliable) 它不能保证IP数据报能成功的到达目的地.IP仅提供最好的传输服务.任何要求的可靠性必须由上层来提供(如TCP) 无连接(connectionless) IP并不维护任何关于后续数据报的状态信息.每个数据报的处理是…
2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限叫做最大传输单元. 分片(fragmentation):把大于MTU的数据报分成若干片,这样每一片都小于MTU. 2.9 路径MTU 路径MTU:两台通信主机路径中的最小MTU.两台主机之间的路径MTU不一定是一个常数,它取决于当时所选则的路由.而选路不一定是对称的(从A到B的路由可能与从B到A的路…
2013-08-19 22:35:57 2.6 PPP:点对点协议 PPP点对点协议修改了SLIP协议中的所有缺陷: 1. 在串联链路上封装IP数据报的方法.PPP即支持数据为8位&无奇偶检验的异步模式(大多数计算机上普遍存在的串行接口).还支持面向比特的同步链接 2. 建立.配置及测试数据链路的链路控制协议(LCP:Link Contrl Protocol).它允许通讯双方进行协商,以确定不同的选项 3. 针对不同网络层协议的网络控制协议(NCP:Network Control Protoco…
2013-08-18 16:31:17 第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接受IP数据报 为ARP模块发送ARP请求和接受ARP应答 为RARP发送RARP请求和接受RARP应答 TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网.令牌环网.FDDI(光线分布式数据接口)及RS-232串行线路等. 2.2 以太网和IEEE 802封装   以太网 IEEE 802 简介 这个术语一般是指数字设备公司.英特尔和Xerox公司在1982年联合…
2013-08-17 17:31:49 1.7 分用 分用(Demultiplexing):这是一个过程——当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议上的报文首部.每层协议盒都要去检查报文首部中的协议标识,以确定接受数据的上层协议——换一种思路理解就是,为数据制定一条解析的路线. 1.8 客户-服务器模型 服务的类型: (多为UDP服务器,当然也存在例外)重复型 (TCP服务器)并发型 I1.等待一个客户请求的到来 C1.等待一个客户请求的到来 I2.处理…
2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两个协议在上一篇读书笔记已有简单的陈述)使用.TCP和UDP的每组数据都通过断系统和每个中间路由器中的IP层在互联网中进行传输. ICMP是IP协议的附属协议.IP层用它来与其他主机或路由器交换错误报文和其他重要信息. IGMP是Internet组管理协议.它用来把一个UDP数据报多播到多个主机. A…
本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法.这大概是史上最详细.清晰的关于 GCD 的详细讲解+总结的文章了.通过本文,您将了解到: 1. GCD 简介 2. GCD 任务和队列 3. GCD 的使用步骤 4. GCD 的基本使用(6种不同组合区别) 5. GCD 线程间的通信 6. GCD 的其他方法(栅栏方法:dispatch_barrier_async.延时执行方法:dispatch_after.一次性代码(只执行一次):dispatch_once.快速迭代方法:dis…
文章:https://bujige.net/blog/iOS-Complete-learning-GCD.html 文中 Demo 我已放在了 Github 上,Demo 链接:https://github.com/bujige/YSC-GCD-demo 我只能帮你们这么多了~~…
1. RunLoop 简介 1.1 什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环.结合在一起就是运行的循环的意思.哈哈,我更愿意翻译为『跑圈』.直观理解就像是不停的跑圈. RunLoop 实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件.UI刷新事件.定时器事件.Selector事件),从而保持程序的持续运行. RunLoop 在没有事件处理的时候,会使线程进入睡眠模式,从而节省 CPU 资源,提高程序性能. 1.2 R…
目录 1.JMeter断言介绍 2.响应断言组件界面详解 3.响应断言组件的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 (3)响应断言界面内容 (4)查看运行结果 (5)断言结果组件说明 4.总结 5.补充两个类似的断言组件 (1)大小断言组件 (2)持续时间断言组件 1.JMeter断言介绍 JMeter中有个元件叫做断言(Assertion),它的作用和LoadRunner中的检查点类似.用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致.…
目录 1.JSON断言组件界面详解 2.JSON断言组件的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 (3)JSON断言界面内容 (4)查看运行结果 (5)断言结果组件说明 3.JSON与JSON Path的简单说明 (1)JSON (2)JSONPath (3)JSONPath语法 JMeter中有个元件叫做断言(Assertion),它的作用和LoadRunner中的检查点类似.用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 若接口的…
目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 (3)BeanShell断言界面内容 (4)查看运行结果 (5)断言结果组件说明 5.补充知识点 (1)JSON响应体字段提取及断言 (2)响应头解析 JMeter中的BeanShell断言,可以使用BeanShell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够…
目录 1.察看结果树介绍 2.察看结果树界面详解 3.察看结果树的其他功能 (1)将数据写入文件中 (2)Search功能 (3)Scroll automatically选项 4.总结 1.察看结果树介绍 在JMeter中编写接口测试脚本的时候,需要进行调试和查看接口的请求结果是否正常,这个时候就可以使用察看结果树组件. 察看结果树组件中展示了每一个取样器请求的结果.请求信息和响应信息.我们可以通过察看结果树组件中的内容,来分析脚本是否存在问题. 提示:查看结果树在负载测试时注意不要使用,因为它…
目录 1.JSON提取器介绍 2.JSON提取器界面详解 3.JSON提取器的使用 (1)测试计划内包含的元件 (2)HTTP Cookie管理器内容 (3)用户登陆请求界面内容 (4)JSON提取器界面内容 (5)查看用户信息请求页面内容 (6)查看结果 4.总结 5.补充:JSON Path表达式说明 1.JSON提取器介绍 相信做过自动化测试的朋友经常会遇到这样的场景:我想调用系统中的某个业务接口,但是需要先登录系统.也就是现在很多接口的访问,都是需要登录接口的token做为基础. 在JM…